112 lines
2.8 KiB
C#
112 lines
2.8 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Drawing;
|
|||
|
using System.Data;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Windows.Forms;
|
|||
|
|
|||
|
namespace SDRgateway
|
|||
|
{
|
|||
|
public partial class MenuButton : UserControl
|
|||
|
{
|
|||
|
public enum ThemeStyle { Teal, Read };
|
|||
|
|
|||
|
|
|||
|
[Description("Title"), Category("Data")]
|
|||
|
public string Title
|
|||
|
{
|
|||
|
get { return labelName.Text; }
|
|||
|
set { labelName.Text = value; }
|
|||
|
}
|
|||
|
|
|||
|
[Description("Image"), Category("Data")]
|
|||
|
public Image Image
|
|||
|
{
|
|||
|
get { return pictureBox.Image; }
|
|||
|
set { pictureBox.Image = value; }
|
|||
|
}
|
|||
|
|
|||
|
[Description("Theme"), Category("Data")]
|
|||
|
private ThemeStyle _theme;
|
|||
|
public ThemeStyle Theme
|
|||
|
{
|
|||
|
get { return _theme; }
|
|||
|
set { _theme = value; }
|
|||
|
}
|
|||
|
|
|||
|
[Description("Select"), Category("Data"), DefaultValue(false), Browsable(true)]
|
|||
|
private bool _selected = false;
|
|||
|
public bool IsSelected
|
|||
|
{
|
|||
|
get { return _selected; }
|
|||
|
set
|
|||
|
{
|
|||
|
if (_selectable)
|
|||
|
{
|
|||
|
_selected = value;
|
|||
|
if (!_selected)
|
|||
|
UnSelected();
|
|||
|
else
|
|||
|
Selected();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[Description("IsSelectable"), Category("Data"), DefaultValue(true), Browsable(true)]
|
|||
|
private bool _selectable = true;
|
|||
|
public bool IsSelectable
|
|||
|
{
|
|||
|
get { return _selectable; }
|
|||
|
set { _selectable = value;
|
|||
|
_selected = false;
|
|||
|
UnSelected();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public MenuButton()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
//UnSelected();
|
|||
|
}
|
|||
|
|
|||
|
public void Selected()
|
|||
|
{
|
|||
|
panelBack.BackColor = Color.FromArgb(31, 180, 174);
|
|||
|
this.BackColor = Color.FromArgb(31, 180, 174);
|
|||
|
labelName.ForeColor = Color.Black;
|
|||
|
if(OnButtonClick != null)
|
|||
|
OnButtonClick();
|
|||
|
}
|
|||
|
|
|||
|
public void UnSelected()
|
|||
|
{
|
|||
|
panelBack.BackColor = Color.Transparent;
|
|||
|
this.BackColor = Color.Transparent;
|
|||
|
labelName.ForeColor = Color.FromArgb(190, 192, 189);
|
|||
|
}
|
|||
|
|
|||
|
public delegate void OnClickEvent();
|
|||
|
public event OnClickEvent OnButtonClick;
|
|||
|
|
|||
|
|
|||
|
private void OnObjClick(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (!_selected && _selectable)
|
|||
|
{
|
|||
|
//if (!_selectable)
|
|||
|
{
|
|||
|
IsSelected = true;
|
|||
|
Selected();
|
|||
|
}
|
|||
|
this.OnClick(EventArgs.Empty);
|
|||
|
}
|
|||
|
|
|||
|
if (!_selected)
|
|||
|
this.OnClick(EventArgs.Empty);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|