296 lines
17 KiB
C#
296 lines
17 KiB
C#
using System;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
|
|
namespace DevComponents.DotNetBar.Rendering
|
|
{
|
|
/// <summary>
|
|
/// Represents color table for Office 2010 style.
|
|
/// </summary>
|
|
public class Office2010ColorTable : Office2007ColorTable
|
|
{
|
|
/// <summary>
|
|
/// Initializes a new instance of the Office2010ColorTable class.
|
|
/// </summary>
|
|
public Office2010ColorTable()
|
|
{
|
|
Office2010BlueFactory.InitializeColorTable(this, ColorFactory.Empty);
|
|
InitAppButtonColors(this, ColorFactory.Empty);
|
|
}
|
|
|
|
public Office2010ColorTable(eOffice2010ColorScheme color)
|
|
{
|
|
if(color == eOffice2010ColorScheme.Blue)
|
|
Office2010BlueFactory.InitializeColorTable(this, ColorFactory.Empty);
|
|
else if(color == eOffice2010ColorScheme.Silver)
|
|
Office2010SilverFactory.InitializeColorTable(this, ColorFactory.Empty);
|
|
else if (color == eOffice2010ColorScheme.Black)
|
|
Office2010BlackFactory.InitializeColorTable(this, ColorFactory.Empty);
|
|
else if (color == eOffice2010ColorScheme.VS2010)
|
|
VisualStudio2010Factory.InitializeColorTable(this, ColorFactory.Empty);
|
|
InitAppButtonColors(this, ColorFactory.Empty);
|
|
_ColorScheme = color;
|
|
}
|
|
|
|
public Office2010ColorTable(eOffice2010ColorScheme color, Color blendColor)
|
|
{
|
|
ColorFactory factory = blendColor.IsEmpty ? ColorFactory.Empty : new ColorBlendFactory(blendColor);
|
|
if (color == eOffice2010ColorScheme.Blue)
|
|
Office2010BlueFactory.InitializeColorTable(this, factory);
|
|
else if (color == eOffice2010ColorScheme.Silver)
|
|
Office2010SilverFactory.InitializeColorTable(this, factory);
|
|
else if (color == eOffice2010ColorScheme.Black)
|
|
Office2010BlackFactory.InitializeColorTable(this, factory);
|
|
else if (color == eOffice2010ColorScheme.VS2010)
|
|
VisualStudio2010Factory.InitializeColorTable(this, factory);
|
|
InitAppButtonColors(this, factory);
|
|
_ColorScheme = color;
|
|
}
|
|
|
|
private eOffice2010ColorScheme _ColorScheme;
|
|
/// <summary>
|
|
/// Gets the color scheme color table is initialized with.
|
|
/// </summary>
|
|
public eOffice2010ColorScheme ColorScheme
|
|
{
|
|
get { return _ColorScheme; }
|
|
}
|
|
|
|
#region Application Button Colors
|
|
private static Office2007ButtonItemColorTable FallBackAppButtonColorTable = null;
|
|
internal static Office2007ButtonItemColorTable GetFallBackAppButtonColorTable()
|
|
{
|
|
if (FallBackAppButtonColorTable != null) return FallBackAppButtonColorTable;
|
|
|
|
// Blue default
|
|
Office2007ButtonItemColorTable table = new Office2007ButtonItemColorTable();
|
|
table.Name = Enum.GetName(typeof(eButtonColor), eButtonColor.Blue);
|
|
|
|
Office2007ButtonItemStateColorTable ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(0x3E7DDB, 0x265FB2);
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(DevComponents.DotNetBar.ColorScheme.GetColor(64, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(0x1E48A0, 0x244FA6);
|
|
ct.InnerBorder = new LinearGradientColorTable(32, 0xFFFFFF);
|
|
ct.Text = DevComponents.DotNetBar.ColorScheme.GetColor(0xFFFFFF);
|
|
table.Default = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(0x4786E5, 0x2D65BC);
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(DevComponents.DotNetBar.ColorScheme.GetColor(82, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(0x1F48A1, 0x2954A9);
|
|
ct.InnerBorder = new LinearGradientColorTable(DevComponents.DotNetBar.ColorScheme.GetColor(72, 0xFFFFFF), DevComponents.DotNetBar.ColorScheme.GetColor(48, 0xFFFFFF));
|
|
ct.Text = DevComponents.DotNetBar.ColorScheme.GetColor(0xFFFFFF);
|
|
table.MouseOver = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(0x2861B6, 0x1D5AB2);
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(DevComponents.DotNetBar.ColorScheme.GetColor(82, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(0x1F48A1, 0x224EA6);
|
|
ct.InnerBorder = new LinearGradientColorTable(DevComponents.DotNetBar.ColorScheme.GetColor(72, 0xFFFFFF), DevComponents.DotNetBar.ColorScheme.GetColor(48, 0xFFFFFF));
|
|
ct.Text = DevComponents.DotNetBar.ColorScheme.GetColor(0xFFFFFF);
|
|
table.Pressed = ct;
|
|
|
|
table.Expanded = table.Pressed;
|
|
table.Checked = table.Pressed;
|
|
|
|
FallBackAppButtonColorTable = table;
|
|
return table;
|
|
}
|
|
internal static void InitAppButtonColors(Office2007ColorTable colorTable, ColorFactory factory)
|
|
{
|
|
Office2007ButtonItemColorTableCollection colors = colorTable.ApplicationButtonColors;
|
|
colors.Clear();
|
|
|
|
// Blue default
|
|
Office2007ButtonItemColorTable table = new Office2007ButtonItemColorTable();
|
|
table.Name = Enum.GetName(typeof(eButtonColor), eButtonColor.Blue);
|
|
|
|
Office2007ButtonItemStateColorTable ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x3E7DDB), factory.GetColor(0x265FB2));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(64, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x1E48A0), factory.GetColor(0x244FA6));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(32, 0xFFFFFF));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Default = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x4786E5), factory.GetColor(0x2D65BC));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(82, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x1F48A1), factory.GetColor(0x2954A9));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(72, 0xFFFFFF), factory.GetColor(48, 0xFFFFFF)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.MouseOver = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x2861B6), factory.GetColor(0x1D5AB2));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(82, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x1F48A1), factory.GetColor(0x224EA6));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(72, 0xFFFFFF), factory.GetColor(48, 0xFFFFFF)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Pressed = ct;
|
|
|
|
table.Expanded = table.Pressed;
|
|
table.Checked = table.Pressed;
|
|
|
|
colors.Add(table);
|
|
|
|
// Magenta
|
|
table = new Office2007ButtonItemColorTable();
|
|
table.Name = Enum.GetName(typeof(eButtonColor), eButtonColor.Magenta);
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0xCC256B), factory.GetColor(0xB10851));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(64, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x8F013C), factory.GetColor(0x940741));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(32, 0xFFFFFF));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Default = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0xD63272), factory.GetColor(0xB10B52));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(82, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x8F013C), factory.GetColor(0x950942));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(72, 0xFFFFFF), factory.GetColor(48, 0xFFFFFF)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.MouseOver = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0xB50C53), factory.GetColor(0xB00B52));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(82, 0xFFFFFF), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x8F013D), factory.GetColor(0x950741));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(72, 0xFFFFFF), factory.GetColor(48, 0xFFFFFF)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Pressed = ct;
|
|
|
|
table.Expanded = table.Pressed;
|
|
table.Checked = table.Pressed;
|
|
|
|
colors.Add(table);
|
|
|
|
// Orange
|
|
table = new Office2007ButtonItemColorTable();
|
|
table.Name = Enum.GetName(typeof(eButtonColor), eButtonColor.Orange);
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0xF27350), factory.GetColor(0xE5552F));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0xF89E42), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0xCC2B12), factory.GetColor(0xCF3415));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0xF68954), factory.GetColor(0xF78B3E));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Default = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0xF87E4D), factory.GetColor(0xE6552E));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0xFBBD5E), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0xCA2810), factory.GetColor(0xCD3217));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0xFBAA5A), factory.GetColor(0xFCB857)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.MouseOver = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0xE3531D), factory.GetColor(0xE04E19));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0xFDAF4C), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0xCA2810), factory.GetColor(0xCD3013));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0xE86229), factory.GetColor(0xFB8D44)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Pressed = ct;
|
|
|
|
table.Expanded = table.Pressed;
|
|
table.Checked = table.Pressed;
|
|
|
|
colors.Add(table);
|
|
|
|
// Green
|
|
table = new Office2007ButtonItemColorTable();
|
|
table.Name = Enum.GetName(typeof(eButtonColor), eButtonColor.BlueWithBackground);
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x459731), factory.GetColor(0x2B7F2C));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0x6BCA45), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x186337), factory.GetColor(0x1E6A39));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0x4CA231), factory.GetColor(0x53B331));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Default = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x469734), factory.GetColor(0x267C2B));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0x89D668), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x196437), factory.GetColor(0x216B3C));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0x65B943), factory.GetColor(0x70CC4A));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.MouseOver = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x2F822A), factory.GetColor(0x2A7E2C));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0x68CB38), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x186437), factory.GetColor(0x1D6A38));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0x368F2B), factory.GetColor(0x59BD2D)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Pressed = ct;
|
|
|
|
table.Expanded = table.Pressed;
|
|
table.Checked = table.Pressed;
|
|
|
|
colors.Add(table);
|
|
|
|
// Teal
|
|
table = new Office2007ButtonItemColorTable();
|
|
table.Name = Enum.GetName(typeof(eButtonColor), eButtonColor.MagentaWithBackground);
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x159795), factory.GetColor(0x018281));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0x20B7B4), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x055E5E), factory.GetColor(0x076464));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0x1BA29D), factory.GetColor(0x1FB1A9));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Default = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x1F9C99), factory.GetColor(0x038584));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0x36CDCA), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x055E5E), factory.GetColor(0x096767));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0x30B8B3), factory.GetColor(0x34C2BE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.MouseOver = ct;
|
|
|
|
ct = new Office2007ButtonItemStateColorTable();
|
|
ct.Background = new LinearGradientColorTable(factory.GetColor(0x028482), factory.GetColor(0x028081));
|
|
ct.BottomBackgroundHighlight = new LinearGradientColorTable(factory.GetColor(0x2CC2BE), Color.Transparent);
|
|
ct.OuterBorder = new LinearGradientColorTable(factory.GetColor(0x055E5E), factory.GetColor(0x086565));
|
|
ct.InnerBorder = new LinearGradientColorTable(factory.GetColor(0x028F8D), factory.GetColor(0x1DB4AD)); //new LinearGradientColorTable(factory.GetColor(0x55A1F3), factory.GetColor(0x4F9EEE));
|
|
ct.Text = factory.GetColor(0xFFFFFF);
|
|
table.Pressed = ct;
|
|
|
|
table.Expanded = table.Pressed;
|
|
table.Checked = table.Pressed;
|
|
|
|
colors.Add(table);
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
/// <summary>
|
|
/// Defines the color scheme type for the Office2010ColorTable.
|
|
/// </summary>
|
|
public enum eOffice2010ColorScheme
|
|
{
|
|
/// <summary>
|
|
/// Silver color scheme.
|
|
/// </summary>
|
|
Silver,
|
|
/// <summary>
|
|
/// Blue color scheme.
|
|
/// </summary>
|
|
Blue,
|
|
/// <summary>
|
|
/// Black color scheme.
|
|
/// </summary>
|
|
Black,
|
|
/// <summary>
|
|
/// Visual Studio 2010 Blue color scheme.
|
|
/// </summary>
|
|
VS2010
|
|
}
|
|
|
|
}
|