using System; using System.Text; using System.Drawing; namespace DevComponents.DotNetBar.Rendering { /// /// Represents color table for Office 2010 style. /// public class Office2010ColorTable : Office2007ColorTable { /// /// Initializes a new instance of the Office2010ColorTable class. /// 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; /// /// Gets the color scheme color table is initialized with. /// 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 } /// /// Defines the color scheme type for the Office2010ColorTable. /// public enum eOffice2010ColorScheme { /// /// Silver color scheme. /// Silver, /// /// Blue color scheme. /// Blue, /// /// Black color scheme. /// Black, /// /// Visual Studio 2010 Blue color scheme. /// VS2010 } }