458 lines
13 KiB
C#

using System;
using System.ComponentModel;
using System.Drawing;
namespace DevComponents.DotNetBar.SuperGrid.Style
{
///<summary>
/// ColumnHeaderRowVisualStyles
///</summary>
[TypeConverter(typeof(VisualStylesConverter))]
public class ColumnHeaderRowVisualStyles : VisualStyles<ColumnHeaderRowVisualStyle>
{
}
///<summary>
/// ColumnHeaderRowVisualStyle
///</summary>
[TypeConverter(typeof(VisualStylesConverter))]
public class ColumnHeaderRowVisualStyle : BaseVisualStyle
{
#region Private variables
private Color _FilterBorderColor = Color.Empty;
private Color _IndicatorBorderColor = Color.Empty;
private Color _SortIndicatorColor = Color.Empty;
private Background _FilterBackground;
private Background _IndicatorBackground;
private Background _WhiteSpaceBackground;
private BaseRowHeaderVisualStyle _RowHeaderStyle;
#endregion
#region Public properties
#region FilterBackground
/// <summary>
/// Gets or sets the filter indicator background
/// </summary>
[Description("Indicates the RowHeader indicator background.")]
public Background FilterBackground
{
get
{
if (_FilterBackground == null)
{
_FilterBackground = Background.Empty;
UpdateChangeHandler(null, _FilterBackground);
}
return (_FilterBackground);
}
set
{
if (_FilterBackground != value)
{
UpdateChangeHandler(_FilterBackground, value);
_FilterBackground = value;
OnPropertyChangedEx("FilterBackground", VisualChangeType.Render);
}
}
}
/// <summary>
/// Gets whether property should be serialized.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeFilterBackground()
{
return (_FilterBackground != null &&
_FilterBackground.IsEmpty == false);
}
/// <summary>
/// Resets property to its default value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetFilterBackground()
{
FilterBackground = null;
}
#endregion
#region FilterBorderColor
/// <summary>
/// Gets or sets the Filter border color
/// </summary>
[Description("Indicates the Filter border color")]
public Color FilterBorderColor
{
get { return (_FilterBorderColor); }
set
{
if (_FilterBorderColor != value)
{
_FilterBorderColor = value;
OnPropertyChangedEx("FilterBorderColor", VisualChangeType.Render);
}
}
}
/// <summary>
/// Gets whether property should be serialized.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeFilterBorderColor()
{
return (_FilterBorderColor.IsEmpty == false);
}
/// <summary>
/// Resets property to its default value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetFilterBorderColor()
{
_FilterBorderColor = Color.Empty;
}
#endregion
#region IndicatorBackground
/// <summary>
/// Gets or sets the RowHeader indicator background
/// </summary>
[Description("Indicates the RowHeader indicator background.")]
public Background IndicatorBackground
{
get
{
if (_IndicatorBackground == null)
{
_IndicatorBackground = Background.Empty;
UpdateChangeHandler(null, _IndicatorBackground);
}
return (_IndicatorBackground);
}
set
{
if (_IndicatorBackground != value)
{
UpdateChangeHandler(_IndicatorBackground, value);
_IndicatorBackground = value;
OnPropertyChangedEx("IndicatorBackground", VisualChangeType.Render);
}
}
}
/// <summary>
/// Gets whether property should be serialized.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeIndicatorBackground()
{
return (_IndicatorBackground != null &&
_IndicatorBackground.IsEmpty == false);
}
/// <summary>
/// Resets property to its default value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetIndicatorBackground()
{
IndicatorBackground = null;
}
#endregion
#region IndicatorBorderColor
/// <summary>
/// Gets or sets the RowHeader indicator border color
/// </summary>
[Description("Indicates the RowHeader indicator border color")]
public Color IndicatorBorderColor
{
get { return (_IndicatorBorderColor); }
set
{
if (_IndicatorBorderColor != value)
{
_IndicatorBorderColor = value;
OnPropertyChangedEx("IndicatorBorderColor", VisualChangeType.Render);
}
}
}
/// <summary>
/// Gets whether property should be serialized.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeIndicatorBorderColor()
{
return (_IndicatorBorderColor.IsEmpty == false);
}
/// <summary>
/// Resets property to its default value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetIndicatorBorderColor()
{
_IndicatorBorderColor = Color.Empty;
}
#endregion
#region RowHeader
/// <summary>
/// Gets or sets the visual style of the ColumnHeader RowHeader
/// </summary>
[Description("Indicates the visual style of the ColumnHeader RowHeader.")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public BaseRowHeaderVisualStyle RowHeader
{
get
{
if (_RowHeaderStyle == null)
{
_RowHeaderStyle = BaseRowHeaderVisualStyle.Empty;
UpdateChangeHandler(null, _RowHeaderStyle);
}
return (_RowHeaderStyle);
}
set
{
if (_RowHeaderStyle != value)
{
UpdateChangeHandler(_RowHeaderStyle, value);
_RowHeaderStyle = value;
OnPropertyChangedEx("RowHeader", VisualChangeType.Render);
}
}
}
#endregion
#region SortIndicatorColor
/// <summary>
/// Gets or sets the Sort indicator color
/// </summary>
[Description("Indicates the Sort indicator color")]
public Color SortIndicatorColor
{
get { return (_SortIndicatorColor); }
set
{
if (_SortIndicatorColor != value)
{
_SortIndicatorColor = value;
OnPropertyChangedEx("SortIndicatorColor", VisualChangeType.Render);
}
}
}
/// <summary>
/// Gets whether property should be serialized.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeSortIndicatorColor()
{
return (_SortIndicatorColor.IsEmpty == false);
}
/// <summary>
/// Resets property to its default value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetSortIndicatorColor()
{
_SortIndicatorColor = Color.Empty;
}
#endregion
#region WhiteSpaceBackground
/// <summary>
/// Gets or sets the WhiteSpace Background
/// </summary>
[Description("Indicates the WhiteSpace Background")]
public Background WhiteSpaceBackground
{
get
{
if (_WhiteSpaceBackground == null)
{
_WhiteSpaceBackground = Background.Empty;
UpdateChangeHandler(null, _WhiteSpaceBackground);
}
return (_WhiteSpaceBackground);
}
set
{
if (_WhiteSpaceBackground != value)
{
UpdateChangeHandler(_WhiteSpaceBackground, value);
_WhiteSpaceBackground = value;
OnPropertyChangedEx("WhiteSpaceBackground", VisualChangeType.Render);
}
}
}
/// <summary>
/// Gets whether property should be serialized.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private bool ShouldSerializeWhiteSpaceBackground()
{
return (_WhiteSpaceBackground != null &&
_WhiteSpaceBackground.IsEmpty == false);
}
/// <summary>
/// Resets property to its default value.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
private void ResetWhiteSpaceBackground()
{
WhiteSpaceBackground = null;
}
#endregion
#endregion
#region ApplyStyle
/// <summary>
/// Applies the style to instance of this style.
/// </summary>
/// <param name="style">Style to apply.</param>
public void ApplyStyle(ColumnHeaderRowVisualStyle style)
{
if (style != null)
{
RowHeader.ApplyStyle(style.RowHeader);
if (style._FilterBackground != null && style._FilterBackground.IsEmpty == false)
FilterBackground = style._FilterBackground.Copy();
if (style._FilterBorderColor.IsEmpty == false)
FilterBorderColor = style._FilterBorderColor;
if (style._IndicatorBackground != null && style.IndicatorBackground.IsEmpty == false)
IndicatorBackground = style._IndicatorBackground.Copy();
if (style._IndicatorBorderColor.IsEmpty == false)
IndicatorBorderColor = style._IndicatorBorderColor;
if (style._SortIndicatorColor.IsEmpty == false)
SortIndicatorColor = style._SortIndicatorColor;
if (style._WhiteSpaceBackground != null && style._WhiteSpaceBackground.IsEmpty == false)
WhiteSpaceBackground = style._WhiteSpaceBackground.Copy();
}
}
#endregion
#region Copy
/// <summary>
/// Returns the copy of the style.
/// </summary>
/// <returns>Copy of the style.</returns>
public new ColumnHeaderRowVisualStyle Copy()
{
ColumnHeaderRowVisualStyle copy = new ColumnHeaderRowVisualStyle();
CopyTo(copy);
return (copy);
}
#endregion
#region CopyTo
/// <summary>
/// Returns the copy of the style.
/// </summary>
/// <returns>Copy of the style.</returns>
public void CopyTo(ColumnHeaderRowVisualStyle copy)
{
base.CopyTo(copy);
if (_RowHeaderStyle != null)
copy.RowHeader = _RowHeaderStyle.Copy();
if (_FilterBackground != null)
copy.FilterBackground = _FilterBackground.Copy();
if (_IndicatorBackground != null)
copy.IndicatorBackground = _IndicatorBackground.Copy();
copy.FilterBorderColor = _FilterBorderColor;
copy.IndicatorBorderColor = _IndicatorBorderColor;
copy.SortIndicatorColor = _SortIndicatorColor;
if (_WhiteSpaceBackground != null)
copy.WhiteSpaceBackground = _WhiteSpaceBackground.Copy();
}
#endregion
#region IDisposable
/// <summary>
/// Dispose
/// </summary>
public override void Dispose()
{
IndicatorBackground = null;
RowHeader = null;
WhiteSpaceBackground = null;
FilterBackground = null;
base.Dispose();
}
#endregion
}
}