348 lines
11 KiB
C#
348 lines
11 KiB
C#
#if FRAMEWORK20
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using DevComponents.DotNetBar;
|
|
|
|
namespace DevComponents.Editors
|
|
{
|
|
/// <summary>
|
|
/// Describes input button settings.
|
|
/// </summary>
|
|
[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
|
|
/// <summary>
|
|
/// Initializes a new instance of the InputButtonSettings class.
|
|
/// </summary>
|
|
public InputButtonSettings()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Initializes a new instance of the InputButtonSettings class.
|
|
/// </summary>
|
|
/// <param name="parent"></param>
|
|
public InputButtonSettings(IInputButtonControl parent)
|
|
{
|
|
_Parent = parent;
|
|
}
|
|
#endregion
|
|
|
|
#region Internal Implementation
|
|
private bool _Visible = false;
|
|
/// <summary>
|
|
/// Gets or sets whether button is visible.
|
|
/// </summary>
|
|
[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;
|
|
/// <summary>
|
|
/// Gets or sets whether button is enabled.
|
|
/// </summary>
|
|
[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;
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
[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;
|
|
/// <summary>
|
|
/// Gets or sets the image displayed on the face of the button.
|
|
/// </summary>
|
|
[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 = "";
|
|
/// <summary>
|
|
/// Gets or sets the text displayed on the input button face.
|
|
/// </summary>
|
|
[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;
|
|
/// <summary>
|
|
/// Gets or sets the visual item button references for its action.
|
|
/// </summary>
|
|
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
|
public VisualItem ItemReference
|
|
{
|
|
get { return _ItemReference; }
|
|
set { _ItemReference = value; }
|
|
}
|
|
|
|
private eShortcut _Shortcut = eShortcut.None;
|
|
/// <summary>
|
|
/// Gets or sets the shortcut key which when pressed triggers button click event or its default function.
|
|
/// </summary>
|
|
[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 = "";
|
|
/// <summary>
|
|
/// Gets or sets tooltip displayed for the button when mouse hovers over it.
|
|
/// </summary>
|
|
[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 = "";
|
|
/// <summary>
|
|
/// Indicates the symbol displayed on face of the button instead of the image. Setting the symbol overrides the image setting.
|
|
/// </summary>
|
|
[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);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// Called when Symbol property has changed.
|
|
/// </summary>
|
|
/// <param name="oldValue">Old property value</param>
|
|
/// <param name="newValue">New property value</param>
|
|
protected virtual void OnSymbolChanged(string oldValue, string newValue)
|
|
{
|
|
//OnPropertyChanged(new PropertyChangedEventArgs("Symbol"));
|
|
NotifyParent();
|
|
}
|
|
private eSymbolSet _SymbolSet = eSymbolSet.Awesome;
|
|
/// <summary>
|
|
/// Gets or sets the symbol set used to represent the Symbol.
|
|
/// </summary>
|
|
[Browsable(false), DefaultValue(eSymbolSet.Awesome)]
|
|
public eSymbolSet SymbolSet
|
|
{
|
|
get { return _SymbolSet; }
|
|
set
|
|
{
|
|
if (_SymbolSet != value)
|
|
{
|
|
eSymbolSet oldValue = _SymbolSet;
|
|
_SymbolSet = value;
|
|
OnSymbolSetChanged(oldValue, value);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// Called when SymbolSet property value changes.
|
|
/// </summary>
|
|
/// <param name="oldValue">Indciates old value</param>
|
|
/// <param name="newValue">Indicates new value</param>
|
|
protected virtual void OnSymbolSetChanged(eSymbolSet oldValue, eSymbolSet newValue)
|
|
{
|
|
NotifyParent();
|
|
}
|
|
|
|
private Color _SymbolColor = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the Symbol.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of the Symbol.")]
|
|
public Color SymbolColor
|
|
{
|
|
get { return _SymbolColor; }
|
|
set { _SymbolColor = value; NotifyParent(); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeSymbolColor()
|
|
{
|
|
return !_SymbolColor.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetSymbolColor()
|
|
{
|
|
this.SymbolColor = Color.Empty;
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Copies properties to new instance of the item.
|
|
/// </summary>
|
|
/// <param name="copy">New InputButtonSettings instance</param>
|
|
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
|
|
|