436 lines
17 KiB
C#
436 lines
17 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
|
|
namespace DevComponents.DotNetBar.Rendering
|
|
{
|
|
/// <summary>
|
|
/// Defines colors used by Radial Menu Component.
|
|
/// </summary>
|
|
[ToolboxItem(false), DesignTimeVisible(false), TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
|
|
public class RadialMenuColorTable : Component, INotifyPropertyChanged
|
|
{
|
|
#region Implementation
|
|
public void Apply(RadialMenuColorTable table)
|
|
{
|
|
table.CircularBackColor = this.CircularBackColor;
|
|
table.CircularBorderColor = this.CircularBorderColor;
|
|
table.CircularForeColor = this.CircularForeColor;
|
|
table.RadialMenuBackground = this.RadialMenuBackground;
|
|
table.RadialMenuBorder = this.RadialMenuBorder;
|
|
table.RadialMenuButtonBackground = this.RadialMenuButtonBackground;
|
|
table.RadialMenuButtonBorder = this.RadialMenuButtonBorder;
|
|
table.RadialMenuExpandForeground = this.RadialMenuExpandForeground;
|
|
table.RadialMenuInactiveBorder = this.RadialMenuInactiveBorder;
|
|
table.RadialMenuItemForeground = this.RadialMenuItemForeground;
|
|
table.RadialMenuItemDisabledForeground = this.RadialMenuItemDisabledForeground;
|
|
table.RadialMenuItemMouseOverBackground = this.RadialMenuItemMouseOverBackground;
|
|
table.RadialMenuItemMouseOverForeground = this.RadialMenuItemMouseOverForeground;
|
|
table.RadialMenuMouseOverBorder = this.RadialMenuMouseOverBorder;
|
|
}
|
|
private void OnPropertyChanged(string propertyName)
|
|
{
|
|
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
|
|
private Color _RadialMenuButtonBackground = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the Radial Menu button background.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of Radial Menu button background.")]
|
|
public Color RadialMenuButtonBackground
|
|
{
|
|
get { return _RadialMenuButtonBackground; }
|
|
set { _RadialMenuButtonBackground = value; OnPropertyChanged("RadialMenuButtonBorder"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuButtonBackground()
|
|
{
|
|
return !_RadialMenuButtonBackground.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuButtonBackground()
|
|
{
|
|
this.RadialMenuButtonBackground = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuButtonBorder = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the radial menu button border.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of Radial Menu Button border.")]
|
|
public Color RadialMenuButtonBorder
|
|
{
|
|
get { return _RadialMenuButtonBorder; }
|
|
set { _RadialMenuButtonBorder = value; OnPropertyChanged("RadialMenuButtonBorder"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuButtonBorder()
|
|
{
|
|
return !_RadialMenuButtonBorder.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuButtonBorder()
|
|
{
|
|
this.RadialMenuButtonBorder = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuBackground = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the Radial Menu background.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of Radial Menu background.")]
|
|
public Color RadialMenuBackground
|
|
{
|
|
get { return _RadialMenuBackground; }
|
|
set { _RadialMenuBackground = value; OnPropertyChanged("RadialMenuBackground"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuBackground()
|
|
{
|
|
return !_RadialMenuBackground.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuBackground()
|
|
{
|
|
this.RadialMenuBackground = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuBorder = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the Radial Menu border
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of Radial Menu border.")]
|
|
public Color RadialMenuBorder
|
|
{
|
|
get { return _RadialMenuBorder; }
|
|
set { _RadialMenuBorder = value; OnPropertyChanged("RadialMenuBorder"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuBorder()
|
|
{
|
|
return !_RadialMenuBorder.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuBorder()
|
|
{
|
|
this.RadialMenuBorder = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuMouseOverBorder = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of border for mouse over state for the radial menu item expand part.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of border for mouse over state for the radial menu items expand part.")]
|
|
public Color RadialMenuMouseOverBorder
|
|
{
|
|
get { return _RadialMenuMouseOverBorder; }
|
|
set { _RadialMenuMouseOverBorder = value; OnPropertyChanged("RadialMenuMouseOverBorder"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuMouseOverBorder()
|
|
{
|
|
return !_RadialMenuMouseOverBorder.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuMouseOverBorder()
|
|
{
|
|
this.RadialMenuMouseOverBorder = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuInactiveBorder = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the radial menu border for parts where items do not have sub-items, i.e. non-active area of the border.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of radial menu border for parts where items do not have sub-items, i.e. non-active area of the border..")]
|
|
public Color RadialMenuInactiveBorder
|
|
{
|
|
get { return _RadialMenuInactiveBorder; }
|
|
set { _RadialMenuInactiveBorder = value; OnPropertyChanged("RadialMenuInactiveBorder"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuInactiveBorder()
|
|
{
|
|
return !_RadialMenuInactiveBorder.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuInactiveBorder()
|
|
{
|
|
this.RadialMenuInactiveBorder = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuExpandForeground = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the expand sign which shows menu item sub-items.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of expand sign which shows menu item sub-items..")]
|
|
public Color RadialMenuExpandForeground
|
|
{
|
|
get { return _RadialMenuExpandForeground; }
|
|
set { _RadialMenuExpandForeground = value; OnPropertyChanged("RadialMenuExpandForeground"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuExpandForeground()
|
|
{
|
|
return !_RadialMenuExpandForeground.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuExpandForeground()
|
|
{
|
|
this.RadialMenuExpandForeground = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuItemForeground = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the radial menu item text.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of radial menu item text.")]
|
|
public Color RadialMenuItemForeground
|
|
{
|
|
get { return _RadialMenuItemForeground; }
|
|
set { _RadialMenuItemForeground = value; OnPropertyChanged("RadialMenuItemForeground"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuItemForeground()
|
|
{
|
|
return !_RadialMenuItemForeground.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuItemForeground()
|
|
{
|
|
this.RadialMenuItemForeground = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuItemMouseOverBackground = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the radial menu item mouse over background.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of radial menu item mouse over background.")]
|
|
public Color RadialMenuItemMouseOverBackground
|
|
{
|
|
get { return _RadialMenuItemMouseOverBackground; }
|
|
set { _RadialMenuItemMouseOverBackground = value; OnPropertyChanged("RadialMenuItemMouseOverBackground"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuItemMouseOverBackground()
|
|
{
|
|
return !_RadialMenuItemMouseOverBackground.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuItemMouseOverBackground()
|
|
{
|
|
this.RadialMenuItemMouseOverBackground = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuItemMouseOverForeground = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the radial menu item mouse over foreground.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of radial menu item mouse over foreground.")]
|
|
public Color RadialMenuItemMouseOverForeground
|
|
{
|
|
get { return _RadialMenuItemMouseOverForeground; }
|
|
set { _RadialMenuItemMouseOverForeground = value; OnPropertyChanged("RadialMenuItemMouseOverForeground"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeRadialMenuItemMouseOverForeground()
|
|
{
|
|
return !_RadialMenuItemMouseOverForeground.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetRadialMenuItemMouseOverForeground()
|
|
{
|
|
this.RadialMenuItemMouseOverForeground = Color.Empty;
|
|
}
|
|
|
|
private Color _RadialMenuItemDisabledForeground = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets the color of the radial menu item foreground when disabled.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates color of radial menu item foreground when disabled.")]
|
|
public Color RadialMenuItemDisabledForeground
|
|
{
|
|
get { return _RadialMenuItemDisabledForeground; }
|
|
set { _RadialMenuItemDisabledForeground = value; OnPropertyChanged("_RadialMenuItemDisabledForeground"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerialize_RadialMenuItemDisabledForeground()
|
|
{
|
|
return !_RadialMenuItemDisabledForeground.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void Reset_RadialMenuItemDisabledForeground()
|
|
{
|
|
this.RadialMenuItemDisabledForeground = Color.Empty;
|
|
}
|
|
#endregion
|
|
|
|
#region Circular Menu Type
|
|
private Color _CircularBackColor = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets background color of the circular menu item type. Applies only to circular menu types.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates background color of the circular menu item type.")]
|
|
public Color CircularBackColor
|
|
{
|
|
get { return _CircularBackColor; }
|
|
set { _CircularBackColor = value; OnPropertyChanged("CircularBackColor"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeCircularBackColor()
|
|
{
|
|
return !_CircularBackColor.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetCircularBackColor()
|
|
{
|
|
this.CircularBackColor = Color.Empty;
|
|
}
|
|
|
|
private Color _CircularForeColor = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets text color of the circular menu item type. Applies only to circular menu types.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates text color of the circular menu item type.")]
|
|
public Color CircularForeColor
|
|
{
|
|
get { return _CircularForeColor; }
|
|
set { _CircularForeColor = value; OnPropertyChanged("CircularForeColor"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeCircularForeColor()
|
|
{
|
|
return !_CircularForeColor.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetCircularForeColor()
|
|
{
|
|
this.CircularForeColor = Color.Empty;
|
|
}
|
|
|
|
private Color _CircularBorderColor = Color.Empty;
|
|
/// <summary>
|
|
/// Gets or sets border color of the circular menu item type. Applies only to circular menu types.
|
|
/// </summary>
|
|
[Category("Appearance"), Description("Indicates border color of the circular menu item type.")]
|
|
public Color CircularBorderColor
|
|
{
|
|
get { return _CircularBorderColor; }
|
|
set { _CircularBorderColor = value; OnPropertyChanged("CircularBorderColor"); }
|
|
}
|
|
/// <summary>
|
|
/// Gets whether property should be serialized.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public bool ShouldSerializeCircularBorderColor()
|
|
{
|
|
return !_CircularBorderColor.IsEmpty;
|
|
}
|
|
/// <summary>
|
|
/// Resets property to its default value.
|
|
/// </summary>
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public void ResetCircularBorderColor()
|
|
{
|
|
this.CircularBorderColor = Color.Empty;
|
|
}
|
|
#endregion
|
|
|
|
#region INotifyPropertyChanged Members
|
|
/// <summary>
|
|
/// Occurs when property value has changed.
|
|
/// </summary>
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
/// <summary>
|
|
/// Raises the PropertyChanged event.
|
|
/// </summary>
|
|
/// <param name="e">Event arguments</param>
|
|
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
|
|
{
|
|
PropertyChangedEventHandler eh = PropertyChanged;
|
|
if (eh != null) eh(this, e);
|
|
}
|
|
#endregion
|
|
}
|
|
}
|