#if FRAMEWORK20 using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Drawing; using DevComponents.DotNetBar; namespace DevComponents.Editors { /// /// Describes input button settings. /// [System.ComponentModel.ToolboxItem(false), System.ComponentModel.DesignTimeVisible(false), TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))] public class InputButtonSettings : IComparable { #region Private Variables private IInputButtonControl _Parent = null; #endregion #region Constructor /// /// Initializes a new instance of the InputButtonSettings class. /// public InputButtonSettings() { } /// /// Initializes a new instance of the InputButtonSettings class. /// /// public InputButtonSettings(IInputButtonControl parent) { _Parent = parent; } #endregion #region Internal Implementation private bool _Visible = false; /// /// Gets or sets whether button is visible. /// [DefaultValue(false), Description("Indicates whether button is visible.")] public bool Visible { get { return _Visible; } set { if (_Visible != value) { _Visible = value; OnVisibleChanged(); } } } private void OnVisibleChanged() { NotifyParent(); } private bool _Enabled = true; /// /// Gets or sets whether button is enabled. /// [DefaultValue(true), Description("Indicates whether button is enabled.")] public bool Enabled { get { return _Enabled; } set { if (_Enabled != value) { _Enabled = value; NotifyParent(); } } } private int _DisplayPosition = 0; /// /// Gets or sets the display position index of the button. Buttons are ordered from left to right with button with lowest index appearing as left-most button. /// [DefaultValue(0), Description("Indicates display position index of the button."), Localizable(true)] public int DisplayPosition { get { return _DisplayPosition; } set { if (_DisplayPosition != value) { _DisplayPosition = value; OnDisplayPositionChanged(); } } } private void OnDisplayPositionChanged() { NotifyParent(); } private Image _Image = null; /// /// Gets or sets the image displayed on the face of the button. /// [DefaultValue(null), Description("Indicates image displayed on the face of the button."), Localizable(true)] public Image Image { get { return _Image; } set { if (_Image != value) { _Image = value; OnImageChanged(); } } } private void OnImageChanged() { NotifyParent(); } private string _Text = ""; /// /// Gets or sets the text displayed on the input button face. /// [DefaultValue(""), Description("Input text displayed on the input button face."), Localizable(true)] public string Text { get { return _Text; } set { if (value == null) value = ""; if (_Text != value) { _Text = value; OnTextChanged(); } } } private void OnTextChanged() { NotifyParent(); } private bool _Checked = false; [DefaultValue(false), Description("Gets or sets whether button is checked.")] public bool Checked { get { return _Checked; } set { if (_Checked!=value) { _Checked = value; OnCheckedChanged(); } } } private void OnCheckedChanged() { NotifyParent(); } private void NotifyParent() { if (_Parent != null) _Parent.InputButtonSettingsChanged(this); } private VisualItem _ItemReference = null; /// /// Gets or sets the visual item button references for its action. /// [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public VisualItem ItemReference { get { return _ItemReference; } set { _ItemReference = value; } } private eShortcut _Shortcut = eShortcut.None; /// /// Gets or sets the shortcut key which when pressed triggers button click event or its default function. /// [DefaultValue(eShortcut.None), Description("Indicates shortcut key which when pressed triggers button click event or its default function.")] public eShortcut Shortcut { get { return _Shortcut; } set { if (_Shortcut != value) { _Shortcut = value; NotifyParent(); } } } private string _Tooltip = ""; /// /// Gets or sets tooltip displayed for the button when mouse hovers over it. /// [DefaultValue(""), Category("Appearance"), Description("Indicates tooltip displayed for the button when mouse hovers over it."), Localizable(true)] public string Tooltip { get { return _Tooltip; } set { if (value == null) value = ""; _Tooltip = value; } } private string _Symbol = ""; /// /// Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting. /// [DefaultValue(""), Category("Appearance"), Description("Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting.")] [Editor("DevComponents.DotNetBar.Design.SymbolTypeEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral, PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor))] public string Symbol { get { return _Symbol; } set { if (value != _Symbol) { string oldValue = _Symbol; _Symbol = value; OnSymbolChanged(oldValue, value); } } } /// /// Called when Symbol property has changed. /// /// Old property value /// New property value protected virtual void OnSymbolChanged(string oldValue, string newValue) { //OnPropertyChanged(new PropertyChangedEventArgs("Symbol")); NotifyParent(); } private eSymbolSet _SymbolSet = eSymbolSet.Awesome; /// /// Gets or sets the symbol set used to represent the Symbol. /// [Browsable(false), DefaultValue(eSymbolSet.Awesome)] public eSymbolSet SymbolSet { get { return _SymbolSet; } set { if (_SymbolSet != value) { eSymbolSet oldValue = _SymbolSet; _SymbolSet = value; OnSymbolSetChanged(oldValue, value); } } } /// /// Called when SymbolSet property value changes. /// /// Indciates old value /// Indicates new value protected virtual void OnSymbolSetChanged(eSymbolSet oldValue, eSymbolSet newValue) { NotifyParent(); } private Color _SymbolColor = Color.Empty; /// /// Gets or sets the color of the Symbol. /// [Category("Appearance"), Description("Indicates color of the Symbol.")] public Color SymbolColor { get { return _SymbolColor; } set { _SymbolColor = value; NotifyParent(); } } /// /// Gets whether property should be serialized. /// [EditorBrowsable(EditorBrowsableState.Never)] public bool ShouldSerializeSymbolColor() { return !_SymbolColor.IsEmpty; } /// /// Resets property to its default value. /// [EditorBrowsable(EditorBrowsableState.Never)] public void ResetSymbolColor() { this.SymbolColor = Color.Empty; } #endregion /// /// Copies properties to new instance of the item. /// /// New InputButtonSettings instance internal void CopyToItem(InputButtonSettings copy) { copy.Visible = Visible; copy.Enabled = Enabled; copy.DisplayPosition = DisplayPosition; copy.Image = Image; copy.Text = Text; copy.Checked = Checked; copy.Shortcut = Shortcut; } #region IComparable Members int IComparable.CompareTo(object obj) { if (obj is InputButtonSettings) { int pos = ((InputButtonSettings)obj).DisplayPosition - this.DisplayPosition; if (pos == 0) { if (obj != this) pos = -1; } return pos; } return 0; } #endregion } public interface IInputButtonControl { void InputButtonSettingsChanged(InputButtonSettings button); } } #endif