73 lines
2.3 KiB
C#
73 lines
2.3 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace DevComponents.DotNetBar.SuperGrid.Style
|
|
{
|
|
///<summary>
|
|
/// VisualStylesTable
|
|
///</summary>
|
|
public static class VisualStylesTable
|
|
{
|
|
private static Dictionary<SuperGridStyle, DefaultVisualStyles>
|
|
_DefaultStyles = new Dictionary<SuperGridStyle,DefaultVisualStyles>();
|
|
|
|
/// <summary>
|
|
/// Gets the DefaultVisualStyles for specified SuperGrid style.
|
|
/// </summary>
|
|
/// <param name="style">SuperGridStyle to return.</param>
|
|
/// <returns>An instance of DefaultVisualStyle.</returns>
|
|
public static DefaultVisualStyles GetStyle(SuperGridStyle style)
|
|
{
|
|
DefaultVisualStyles visualStyle;
|
|
bool cacheStyle = true;
|
|
|
|
if (style == SuperGridStyle.Metro || !StyleManager.ColorTint.IsEmpty)
|
|
cacheStyle = false;
|
|
|
|
if (cacheStyle == false || !_DefaultStyles.TryGetValue(style, out visualStyle))
|
|
{
|
|
VisualStyleFactory factory = VisualStyleFactory.GetStyleFactory(style);
|
|
|
|
visualStyle = factory.CreateStyle();
|
|
|
|
if (cacheStyle) // Do not cache Metro style
|
|
_DefaultStyles.Add(style, visualStyle);
|
|
}
|
|
|
|
return visualStyle;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Replaces an system style with the specified visual style.
|
|
/// </summary>
|
|
/// <param name="style">SuperGridStyle to replace.</param>
|
|
/// <param name="visualStyle">DefaultVisualStyles to replace the system style with.</param>
|
|
public static void SetStyleFactory(SuperGridStyle style, DefaultVisualStyles visualStyle)
|
|
{
|
|
_DefaultStyles[style] = visualStyle;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Defines available pre-defined SuperGrid visual styles.
|
|
/// </summary>
|
|
public enum SuperGridStyle
|
|
{
|
|
/// <summary>
|
|
/// Office 2010 Blue style.
|
|
/// </summary>
|
|
Office2010Blue,
|
|
/// <summary>
|
|
/// Office 2010 Silver style.
|
|
/// </summary>
|
|
Office2010Silver,
|
|
/// <summary>
|
|
/// Office 2010 Black style.
|
|
/// </summary>
|
|
Office2010Black,
|
|
/// <summary>
|
|
/// Metro Style.
|
|
/// </summary>
|
|
Metro
|
|
}
|
|
}
|