using System;
using System.ComponentModel;
using System.Drawing;
namespace DevComponents.DotNetBar.SuperGrid.Style
{
///
/// Represents the visual style of a Row.
///
[ToolboxItem(false), DesignTimeVisible(false)]
[TypeConverter(typeof(BlankExpandableObjectConverter))]
public class BaseTreeButtonVisualStyle : BaseVisualStyle
{
#region Static data
///
/// Empty
///
public static BaseTreeButtonVisualStyle Empty
{
get { return (new BaseTreeButtonVisualStyle()); }
}
#endregion
#region Private variables
private Color _BorderColor = Color.Empty;
private Color _HotBorderColor = Color.Empty;
private Color _LineColor = Color.Empty;
private Color _HotLineColor = Color.Empty;
private Background _Background;
private Background _HotBackground;
#endregion
#region Public properties
#region Background
///
/// Gets or sets the TreeButton background.
///
[Description("Indicates the TreeButton background")]
public Background Background
{
get
{
if (_Background == null)
{
_Background = Background.Empty;
UpdateChangeHandler(null, _Background);
}
return (_Background);
}
set
{
if (_Background != value)
{
UpdateChangeHandler(_Background, value);
_Background = value;
OnPropertyChangedEx("Background", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeBackground()
{
return (_Background != null && _Background.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetBackground()
{
_Background = null;
}
#endregion
#region HotBackground
///
/// Gets or sets the Hot background.
///
[Description("Indicates the Hot background")]
public Background HotBackground
{
get
{
if (_HotBackground == null)
{
_HotBackground = Background.Empty;
UpdateChangeHandler(null, _HotBackground);
}
return (_HotBackground);
}
set
{
if (_HotBackground != value)
{
UpdateChangeHandler(_HotBackground, value);
_HotBackground = value;
OnPropertyChangedEx("HotBackground", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeHotBackground()
{
return (_HotBackground != null && _HotBackground.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetHotBackground()
{
HotBackground = null;
}
#endregion
#region BorderColor
///
/// Gets or sets the border Color
///
[Category("Appearance")]
[Description("Indicates the border Color.")]
public Color BorderColor
{
get { return (_BorderColor); }
set
{
if (_BorderColor != value)
{
_BorderColor = value;
OnPropertyChangedEx("BorderColor", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeBorderColor()
{
return (_BorderColor.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetBorderColor()
{
BorderColor = Color.Empty;
}
#endregion
#region HotBorderColor
///
/// Gets or sets the Hot border Color
///
[Category("Appearance")]
[Description("Indicates the Hot border Color.")]
public Color HotBorderColor
{
get { return (_HotBorderColor); }
set
{
if (_HotBorderColor != value)
{
_HotBorderColor = value;
OnPropertyChangedEx("HotBorderColor", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeHotBorderColor()
{
return (_HotBorderColor.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetHotBorderColor()
{
HotBorderColor = Color.Empty;
}
#endregion
#region LineColor
///
/// Gets or sets the button interior line Color
///
[Category("Appearance")]
[Description("Indicates the button interior line Color.")]
public Color LineColor
{
get { return (_LineColor); }
set
{
if (_LineColor != value)
{
_LineColor = value;
OnPropertyChangedEx("LineColor", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeLineColor()
{
return (_LineColor.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetLineColor()
{
LineColor = Color.Empty;
}
#endregion
#region HotLineColor
///
/// Gets or sets the Hot button interior line Color
///
[Category("Appearance")]
[Description("Indicates the Hot button interior line Color.")]
public Color HotLineColor
{
get { return (_HotLineColor); }
set
{
if (_HotLineColor != value)
{
_HotLineColor = value;
OnPropertyChangedEx("HotLineColor", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeHotLineColor()
{
return (_HotLineColor.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetHotLineColor()
{
HotLineColor = Color.Empty;
}
#endregion
#region IsEmpty
///
/// IsEmpty
///
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override bool IsEmpty
{
get
{
return
((_Background == null || _Background.IsEmpty) &&
(_HotBackground == null || _HotBackground.IsEmpty) &&
(_BorderColor == Color.Empty && _HotBorderColor == Color.Empty && base.IsEmpty));
}
}
#endregion
#endregion
#region ApplyStyle
///
/// Applies the style to instance of this style.
///
/// Style to apply.
public void ApplyStyle(BaseTreeButtonVisualStyle style)
{
if (style != null)
{
base.ApplyStyle(style);
if (style.BorderColor.IsEmpty == false)
BorderColor = style.BorderColor;
if (style.HotBorderColor.IsEmpty == false)
HotBorderColor = style.HotBorderColor;
if (style.Background != null && style.Background.IsEmpty == false)
Background = style.Background.Copy();
if (style.HotBackground != null && style.HotBackground.IsEmpty == false)
HotBackground = style.HotBackground.Copy();
if (style.LineColor.IsEmpty == false)
LineColor = style.LineColor;
if (style.HotLineColor.IsEmpty == false)
HotLineColor = style.HotLineColor;
}
}
#endregion
#region Copy
///
/// Returns the copy of the style.
///
/// Copy of the style.
public new BaseTreeButtonVisualStyle Copy()
{
BaseTreeButtonVisualStyle style = new BaseTreeButtonVisualStyle();
CopyTo(style);
return (style);
}
#endregion
#region CopyTo
///
/// Returns the copy of the style.
///
/// Copy of the style.
public void CopyTo(BaseTreeButtonVisualStyle copy)
{
base.CopyTo(copy);
copy.BorderColor = _BorderColor;
copy.HotBorderColor = _HotBorderColor;
copy.LineColor = _LineColor;
copy.HotLineColor = _HotLineColor;
if (Background != null)
copy.Background = _Background.Copy();
if (HotBackground != null)
copy.HotBackground = _HotBackground.Copy();
}
#endregion
#region IDisposable
///
/// Dispose
///
public override void Dispose()
{
Background = null;
HotBackground = null;
base.Dispose();
}
#endregion
}
///
/// Represents the visual style of a Row.
///
[ToolboxItem(false), DesignTimeVisible(false)]
[TypeConverter(typeof(BlankExpandableObjectConverter))]
public class TreeButtonVisualStyle : BaseVisualStyle
{
#region Static data
///
/// Empty
///
public static TreeButtonVisualStyle Empty
{
get { return (new TreeButtonVisualStyle()); }
}
#endregion
#region Private variables
private BaseTreeButtonVisualStyle _ExpandButton;
private BaseTreeButtonVisualStyle _CollapseButton;
#endregion
#region Public properties
#region CollapseButton
///
/// Gets or sets the CollapseButton.
///
[Description("Indicates the CollapseButton")]
public BaseTreeButtonVisualStyle CollapseButton
{
get
{
if (_CollapseButton == null)
{
_CollapseButton = BaseTreeButtonVisualStyle.Empty;
UpdateChangeHandler(null, _CollapseButton);
}
return (_CollapseButton);
}
set
{
if (_CollapseButton != value)
{
UpdateChangeHandler(_CollapseButton, value);
_CollapseButton = value;
OnPropertyChangedEx("CollapseButton", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeCollapseButton()
{
return (_CollapseButton != null && _CollapseButton.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetCollapseButton()
{
CollapseButton = null;
}
#endregion
#region ExpandButton
///
/// Gets or sets the ExpandButton.
///
[Description("Indicates the ExpandButton")]
public BaseTreeButtonVisualStyle ExpandButton
{
get
{
if (_ExpandButton == null)
{
_ExpandButton = BaseTreeButtonVisualStyle.Empty;
UpdateChangeHandler(null, _ExpandButton);
}
return (_ExpandButton);
}
set
{
if (_ExpandButton != value)
{
UpdateChangeHandler(_ExpandButton, value);
_ExpandButton = value;
OnPropertyChangedEx("ExpandButton", VisualChangeType.Render);
}
}
}
///
/// Gets whether property should be serialized.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeExpandButton()
{
return (_ExpandButton != null && _ExpandButton.IsEmpty == false);
}
///
/// Resets property to its default value.
///
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetExpandButton()
{
ExpandButton = null;
}
#endregion
#region IsEmpty
///
/// IsEmpty
///
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override bool IsEmpty
{
get
{
return
((_CollapseButton == null || _CollapseButton.IsEmpty) &&
(_ExpandButton == null || _ExpandButton.IsEmpty) && base.IsEmpty);
}
}
#endregion
#endregion
#region ApplyStyle
///
/// Applies the style to instance of this style.
///
/// Style to apply.
public void ApplyStyle(TreeButtonVisualStyle style)
{
if (style != null)
{
base.ApplyStyle(style);
if (style._CollapseButton != null)
CollapseButton.ApplyStyle(style._CollapseButton);
if (style._ExpandButton != null)
ExpandButton.ApplyStyle(style._ExpandButton);
}
}
#endregion
#region Copy
///
/// Returns the copy of the style.
///
/// Copy of the style.
public new TreeButtonVisualStyle Copy()
{
TreeButtonVisualStyle style = new TreeButtonVisualStyle();
CopyTo(style);
return (style);
}
#endregion
#region CopyTo
///
/// Returns the copy of the style.
///
/// Copy of the style.
public void CopyTo(TreeButtonVisualStyle copy)
{
base.CopyTo(copy);
if (_CollapseButton != null)
copy.CollapseButton = _CollapseButton.Copy();
if (_ExpandButton != null)
copy.ExpandButton = _ExpandButton.Copy();
}
#endregion
#region IDisposable
///
/// Dispose
///
public override void Dispose()
{
CollapseButton = null;
ExpandButton = null;
base.Dispose();
}
#endregion
}
}