452 lines
9.8 KiB
C#
452 lines
9.8 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
|
|
namespace DevComponents.DotNetBar.SuperGrid.Style
|
|
{
|
|
/// <summary>
|
|
/// Represents the base visual style.
|
|
/// </summary>
|
|
[ToolboxItem(false), DesignTimeVisible(false)]
|
|
public class BaseVisualStyle : INotifyPropertyChanged, IDisposable
|
|
{
|
|
#region Private variables
|
|
|
|
private string _Class = "";
|
|
private object _Tag;
|
|
|
|
#endregion
|
|
|
|
#region Public properties
|
|
|
|
#region Class
|
|
|
|
/// <summary>
|
|
/// Gets or sets the class style belongs to.
|
|
/// </summary>
|
|
[Browsable(false)]
|
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
|
public string Class
|
|
{
|
|
get { return (_Class); }
|
|
|
|
set
|
|
{
|
|
if (_Class != value)
|
|
{
|
|
_Class = value;
|
|
|
|
OnPropertyChangedEx("Class", VisualChangeType.Layout);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region IsEmpty
|
|
|
|
/// <summary>
|
|
/// Gets whether the style is logically Empty.
|
|
/// </summary>
|
|
[Browsable(false)]
|
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
|
[Description("Gets whether the style is logically Empty.")]
|
|
public virtual bool IsEmpty
|
|
{
|
|
get { return (_Tag == null); }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Tag
|
|
|
|
/// <summary>
|
|
/// Gets or sets the user defined reference Tag.
|
|
/// </summary>
|
|
[Browsable(false)]
|
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
|
[Description("User defined reference Tag.")]
|
|
public object Tag
|
|
{
|
|
get { return (_Tag); }
|
|
set { _Tag = value; }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region ApplyStyle
|
|
|
|
/// <summary>
|
|
/// Applies the style to instance of this style.
|
|
/// </summary>
|
|
/// <param name="style">Style to apply.</param>
|
|
public void ApplyStyle(BaseVisualStyle style)
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region GetApplyStyleTypes
|
|
|
|
internal StyleType[] GetApplyStyleTypes(StyleType e)
|
|
{
|
|
StyleType[] css = null;
|
|
|
|
switch (e)
|
|
{
|
|
case StyleType.Default:
|
|
css = new StyleType[] { StyleType.Default};
|
|
break;
|
|
|
|
case StyleType.Empty:
|
|
case StyleType.MouseOver:
|
|
case StyleType.ReadOnly:
|
|
case StyleType.Selected:
|
|
case StyleType.NotSelectable:
|
|
css = new StyleType[] { StyleType.Default, e };
|
|
break;
|
|
|
|
case StyleType.SelectedMouseOver:
|
|
css = new StyleType[] { StyleType.Default, StyleType.Selected, e };
|
|
break;
|
|
|
|
case StyleType.ReadOnlyMouseOver:
|
|
css = new StyleType[] { StyleType.Default, StyleType.ReadOnly, e };
|
|
break;
|
|
|
|
case StyleType.ReadOnlySelected:
|
|
css = new StyleType[] { StyleType.Default, StyleType.Selected, StyleType.ReadOnly, e };
|
|
break;
|
|
|
|
case StyleType.ReadOnlySelectedMouseOver:
|
|
css = new StyleType[] { StyleType.Default, StyleType.Selected, StyleType.ReadOnly, StyleType.ReadOnlySelected, e };
|
|
break;
|
|
}
|
|
|
|
return (css);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Copy
|
|
|
|
/// <summary>
|
|
/// Returns the copy of the style.
|
|
/// </summary>
|
|
/// <returns>Copy of the style.</returns>
|
|
public BaseVisualStyle Copy()
|
|
{
|
|
BaseVisualStyle style = new BaseVisualStyle();
|
|
|
|
CopyTo(style);
|
|
|
|
return (style);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CopyTo
|
|
|
|
/// <summary>
|
|
/// Returns the copy of the style.
|
|
/// </summary>
|
|
/// <returns>Copy of the style.</returns>
|
|
public void CopyTo(BaseVisualStyle copy)
|
|
{
|
|
copy.Class = _Class;
|
|
copy.Tag = _Tag;
|
|
}
|
|
|
|
#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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Default PropertyChanged processing
|
|
/// </summary>
|
|
/// <param name="s"></param>
|
|
protected void OnPropertyChanged(string s)
|
|
{
|
|
if (PropertyChanged != null)
|
|
OnPropertyChanged(new VisualPropertyChangedEventArgs(s));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Default PropertyChanged processing
|
|
/// </summary>
|
|
/// <param name="s"></param>
|
|
/// <param name="changeType">invalidate</param>
|
|
protected void OnPropertyChangedEx(string s, VisualChangeType changeType)
|
|
{
|
|
if (PropertyChanged != null)
|
|
OnPropertyChanged(new VisualPropertyChangedEventArgs(s, changeType));
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region UpdateChangeHandler
|
|
|
|
/// <summary>
|
|
/// UpdateChangeHandler
|
|
/// </summary>
|
|
/// <param name="oldValue"></param>
|
|
/// <param name="newValue"></param>
|
|
protected void UpdateChangeHandler(
|
|
INotifyPropertyChanged oldValue, INotifyPropertyChanged newValue)
|
|
{
|
|
if (oldValue != null)
|
|
oldValue.PropertyChanged -= ValuePropertyChanged;
|
|
|
|
if (newValue != null)
|
|
newValue.PropertyChanged += ValuePropertyChanged;
|
|
}
|
|
|
|
void ValuePropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
{
|
|
OnPropertyChanged(e);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region IDisposable
|
|
|
|
/// <summary>
|
|
/// Dispose
|
|
/// </summary>
|
|
public virtual void Dispose()
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
#region enums
|
|
|
|
#region Alignment
|
|
|
|
///<summary>
|
|
/// Alignment of the content
|
|
///</summary>
|
|
public enum Alignment
|
|
{
|
|
///<summary>
|
|
///</summary>
|
|
NotSet = -1,
|
|
|
|
///<summary>
|
|
/// TopLeft
|
|
///</summary>
|
|
TopLeft,
|
|
|
|
///<summary>
|
|
/// TopCenter
|
|
///</summary>
|
|
TopCenter,
|
|
|
|
///<summary>
|
|
/// TopRight
|
|
///</summary>
|
|
TopRight,
|
|
|
|
///<summary>
|
|
/// MiddleLeft
|
|
///</summary>
|
|
MiddleLeft,
|
|
|
|
///<summary>
|
|
/// MiddleCenter
|
|
///</summary>
|
|
MiddleCenter,
|
|
|
|
/// <summary>
|
|
/// MiddleRight
|
|
/// </summary>
|
|
MiddleRight,
|
|
|
|
/// <summary>
|
|
/// BottomLeft
|
|
/// </summary>
|
|
BottomLeft,
|
|
|
|
/// <summary>
|
|
/// BottomCenter
|
|
/// </summary>
|
|
BottomCenter,
|
|
|
|
/// <summary>
|
|
/// BottomRight
|
|
/// </summary>
|
|
BottomRight,
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region BorderSide
|
|
|
|
internal enum BorderSide
|
|
{
|
|
Top,
|
|
Left,
|
|
Bottom,
|
|
Right
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CellHighlightMode
|
|
|
|
///<summary>
|
|
/// Specifies the mode of cell highlighting
|
|
/// to employ when a grid cell is selected
|
|
///</summary>
|
|
public enum CellHighlightMode
|
|
{
|
|
///<summary>
|
|
/// No highlighting
|
|
///</summary>
|
|
None,
|
|
|
|
///<summary>
|
|
/// Entire cell will be Highlighted
|
|
///</summary>
|
|
Full,
|
|
|
|
///<summary>
|
|
/// Partial cell will be Highlighted
|
|
///</summary>
|
|
Partial,
|
|
|
|
///<summary>
|
|
/// Cell content only will be Highlighted
|
|
///</summary>
|
|
Content,
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ImageHighlightMode
|
|
|
|
///<summary>
|
|
/// ImageHighlightMode
|
|
///</summary>
|
|
public enum ImageHighlightMode
|
|
{
|
|
///<summary>
|
|
/// NotSet
|
|
///</summary>
|
|
NotSet = -1,
|
|
|
|
///<summary>
|
|
/// Default
|
|
///</summary>
|
|
Default,
|
|
|
|
///<summary>
|
|
/// Always
|
|
///</summary>
|
|
Always,
|
|
|
|
///<summary>
|
|
/// Never
|
|
///</summary>
|
|
Never,
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ImageOverlay
|
|
|
|
///<summary>
|
|
/// How to Overlay the Image with
|
|
/// respect to the content
|
|
///</summary>
|
|
public enum ImageOverlay
|
|
{
|
|
///<summary>
|
|
///</summary>
|
|
NotSet = -1,
|
|
|
|
///<summary>
|
|
/// None
|
|
///</summary>
|
|
None,
|
|
|
|
///<summary>
|
|
/// Top
|
|
///</summary>
|
|
Top,
|
|
|
|
///<summary>
|
|
/// Bottom
|
|
///</summary>
|
|
Bottom,
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Tbool
|
|
|
|
///<summary>
|
|
/// TBool - Three state boolean
|
|
///</summary>
|
|
public enum Tbool
|
|
{
|
|
///<summary>
|
|
/// NotSet
|
|
///</summary>
|
|
NotSet,
|
|
|
|
///<summary>
|
|
/// True
|
|
///</summary>
|
|
True,
|
|
|
|
///<summary>
|
|
/// False
|
|
///</summary>
|
|
False
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region VisualChangeType
|
|
|
|
/// <summary>
|
|
/// Defines visual property change type.
|
|
/// </summary>
|
|
public enum VisualChangeType
|
|
{
|
|
/// <summary>
|
|
/// Visual style has changed so layout is impacted
|
|
/// </summary>
|
|
Layout,
|
|
|
|
/// <summary>
|
|
/// Visual style has changed so visuals are impacted, but not layout
|
|
/// </summary>
|
|
Render
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
}
|