// *********************************
// Message from Original Author:
//
// 2008 Jose Menendez Poo
// Please give me credit if you use this code. It's all I ask.
// Contact me for more info: menendezpoo@gmail.com
// *********************************
//
// Original project from http://ribbon.codeplex.com/
// Continue to support and maintain by http://officeribbon.codeplex.com/
using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Text;
using System.Windows.Forms.RibbonHelpers;
using System.Xml;
namespace System.Windows.Forms
{
public class RibbonProfesionalRendererColorTable
{
#region Theme Information
public string ThemeName { get; set; }
public string ThemeAuthor { get; set; }
public string ThemeAuthorEmail { get; set; }
public string ThemeAuthorWebsite { get; set; }
public string ThemeDateCreated { get; set; }
#endregion
#region Pendent for black
public Color FormBorder = FromHexStr("#3B5A82");
public Color OrbDropDownDarkBorder = Color.FromArgb(0x9b, 0xaf, 0xca);
public Color OrbDropDownLightBorder = Color.FromArgb(0xff, 0xff, 0xff);
public Color OrbDropDownBack = Color.FromArgb(0xbf, 0xd3, 0xeb);
public Color OrbDropDownNorthA = Color.FromArgb(0xd7, 0xe5, 0xf7);
public Color OrbDropDownNorthB = Color.FromArgb(0xd4, 0xe1, 0xf3);
public Color OrbDropDownNorthC = Color.FromArgb(0xc6, 0xd8, 0xee);
public Color OrbDropDownNorthD = Color.FromArgb(0xb7, 0xca, 0xe6);
public Color OrbDropDownSouthC = Color.FromArgb(0xb0, 0xc9, 0xea);
public Color OrbDropDownSouthD = Color.FromArgb(0xcf, 0xe0, 0xf5);
public Color OrbDropDownContentbg = Color.FromArgb(0xE9, 0xEA, 0xEE);
public Color OrbDropDownContentbglight = Color.FromArgb(0xFA, 0xFA, 0xFA);
public Color OrbDropDownSeparatorlight = Color.FromArgb(0xF5, 0xF5, 0xF5);
public Color OrbDropDownSeparatordark = Color.FromArgb(0xC5, 0xC5, 0xC5);
///
/// Caption bar is made of 4 rectangles height of each is indicated below
///
public Color Caption1 = FromHexStr("#E3EBF6"); //4
public Color Caption2 = FromHexStr("#DAE9FD");
public Color Caption3 = FromHexStr("#D5E5FA"); //4
public Color Caption4 = FromHexStr("#D9E7F9");
public Color Caption5 = FromHexStr("#CADEF7"); //23
public Color Caption6 = FromHexStr("#E4EFFD");
public Color Caption7 = FromHexStr("#B0CFF7"); //1
public Color QuickAccessBorderDark = FromHexStr("#B6CAE2");
public Color QuickAccessBorderLight = FromHexStr("#F2F6FB");
public Color QuickAccessUpper = FromHexStr("#E0EBF9");
public Color QuickAccessLower = FromHexStr("#C9D9EE");
public Color OrbOptionBorder = FromHexStr("#7793B9");
public Color OrbOptionBackground = FromHexStr("#E8F1FC");
public Color OrbOptionShine = FromHexStr("#D2E1F4");
#endregion
#region Fields
public Color Arrow = FromHexStr("#678CBD");
public Color ArrowLight = Color.FromArgb(200, Color.White);
public Color ArrowDisabled = FromHexStr("#B7B7B7");
public Color Text = FromHexStr("#15428B");
///
/// Orb colors in normal state
///
public Color OrbBackgroundDark = FromHexStr("#7C8CA4");
public Color OrbBackgroundMedium = FromHexStr("#99ABC6");
public Color OrbBackgroundLight = Color.White;
public Color OrbLight = Color.White;
///
/// Orb colors in selected state
///
public Color OrbSelectedBackgroundDark = FromHexStr("#DFAA1A");
public Color OrbSelectedBackgroundMedium = FromHexStr("#F9D12E");
public Color OrbSelectedBackgroundLight = FromHexStr("#FFEF36");
public Color OrbSelectedLight = FromHexStr("#FFF52B");
///
/// Orb colors in pressed state
///
public Color OrbPressedBackgroundDark = FromHexStr("#CE8410");
public Color OrbPressedBackgroundMedium = FromHexStr("#CE8410");
public Color OrbPressedBackgroundLight = FromHexStr("#F57603");
public Color OrbPressedLight = FromHexStr("#F08500");
public Color OrbBorderAero = FromHexStr("#99A1AD");
///
/// 2010 style Orb colors
///
public Color OrbButtonText = Color.White;
public Color OrbButtonBackground = Color.FromArgb(60, 120, 187);
public Color OrbButtonDark = Color.FromArgb(25, 65, 135);
public Color OrbButtonMedium = Color.FromArgb(56, 135, 191);
public Color OrbButtonLight = Color.FromArgb(64, 154, 207);
public Color OrbButtonPressedCenter = Color.FromArgb(25, 64, 136);
public Color OrbButtonPressedNorth = Color.FromArgb(71, 132, 194);
public Color OrbButtonPressedSouth = Color.FromArgb(56, 135, 191);
public Color OrbButtonGlossyNorth = Color.FromArgb(71, 132, 194);
public Color OrbButtonGlossySouth = Color.FromArgb(46, 104, 178);
public Color OrbButtonBorderDark = Color.FromArgb(68, 135, 213);
public Color OrbButtonBorderLight = Color.FromArgb(160, 204, 243);
//public Color RibbonBackground = FromHexStr("#BFDBFF");
public Color RibbonBackground = FromHexStr("#BED0E8");
public Color TabBorder = FromHexStr("#9FB2C7");
public Color TabSelectedBorder = FromHexStr("#B1B5BA");
public Color TabNorth = FromHexStr("#EBF3FE");
public Color TabSouth = FromHexStr("#E1EAF6");
public Color TabGlow = FromHexStr("#D1FBFF");
public Color TabText = FromHexStr("#15428B");
public Color TabActiveText = FromHexStr("#15428B");
public Color TabContentNorth = FromHexStr("#C8D9ED");
public Color TabContentSouth = FromHexStr("#E7F2FF");
public Color TabSelectedGlow = FromHexStr("#E1D2A5");
public Color PanelDarkBorder = Color.FromArgb(51, FromHexStr("#15428B"));
public Color PanelLightBorder = Color.FromArgb(102, Color.White);
public Color PanelTextBackground = FromHexStr("#C2D9F0");
public Color PanelTextBackgroundSelected = FromHexStr("#C2D9F0");
public Color PanelText = FromHexStr("#15428B");
public Color PanelBackgroundSelected = Color.FromArgb(102, FromHexStr("#E8FFFD"));
public Color PanelOverflowBackground = FromHexStr("#B9D1F0");
public Color PanelOverflowBackgroundPressed = FromHexStr("#7699C8");
public Color PanelOverflowBackgroundSelectedNorth = Color.FromArgb(100, Color.White);
public Color PanelOverflowBackgroundSelectedSouth = Color.FromArgb(102, FromHexStr("#B8D7FD"));
public Color ButtonBgOut = FromHexStr("#C1D5F1");
public Color ButtonBgCenter = FromHexStr("#CFE0F7");
public Color ButtonBorderOut = FromHexStr("#B9D0ED");
public Color ButtonBorderIn = FromHexStr("#E3EDFB");
public Color ButtonGlossyNorth = FromHexStr("#DEEBFE");
public Color ButtonGlossySouth = FromHexStr("#CBDEF6");
public Color ButtonDisabledBgOut = FromHexStr("#E0E4E8");
public Color ButtonDisabledBgCenter = FromHexStr("#E8EBEF");
public Color ButtonDisabledBorderOut = FromHexStr("#C5D1DE");
public Color ButtonDisabledBorderIn = FromHexStr("#F1F3F5");
public Color ButtonDisabledGlossyNorth = FromHexStr("#F0F3F6");
public Color ButtonDisabledGlossySouth = FromHexStr("#EAEDF1");
public Color ButtonSelectedBgOut = FromHexStr("#FFD646");
public Color ButtonSelectedBgCenter = FromHexStr("#FFEAAC");
public Color ButtonSelectedBorderOut = FromHexStr("#C2A978");
public Color ButtonSelectedBorderIn = FromHexStr("#FFF2C7");
public Color ButtonSelectedGlossyNorth = FromHexStr("#FFFDDB");
public Color ButtonSelectedGlossySouth = FromHexStr("#FFE793");
public Color ButtonPressedBgOut = FromHexStr("#F88F2C");
public Color ButtonPressedBgCenter = FromHexStr("#FDF1B0");
public Color ButtonPressedBorderOut = FromHexStr("#8E8165");
public Color ButtonPressedBorderIn = FromHexStr("#F9C65A");
public Color ButtonPressedGlossyNorth = FromHexStr("#FDD5A8");
public Color ButtonPressedGlossySouth = FromHexStr("#FBB062");
public Color ButtonCheckedBgOut = FromHexStr("#F9AA45");
public Color ButtonCheckedBgCenter = FromHexStr("#FDEA9D");
public Color ButtonCheckedBorderOut = FromHexStr("#8E8165");
public Color ButtonCheckedBorderIn = FromHexStr("#F9C65A");
public Color ButtonCheckedGlossyNorth = FromHexStr("#F8DBB7");
public Color ButtonCheckedGlossySouth = FromHexStr("#FED18E");
public Color ButtonCheckedSelectedBgOut = FromHexStr("#F9AA45");
public Color ButtonCheckedSelectedBgCenter = FromHexStr("#FDEA9D");
public Color ButtonCheckedSelectedBorderOut = FromHexStr("#8E8165");
public Color ButtonCheckedSelectedBorderIn = FromHexStr("#F9C65A");
public Color ButtonCheckedSelectedGlossyNorth = FromHexStr("#F8DBB7");
public Color ButtonCheckedSelectedGlossySouth = FromHexStr("#FED18E");
public Color ItemGroupOuterBorder = FromHexStr("#9EBAE1");
public Color ItemGroupInnerBorder = Color.FromArgb(51, Color.White);
public Color ItemGroupSeparatorLight = Color.FromArgb(64, Color.White);
public Color ItemGroupSeparatorDark = Color.FromArgb(38, FromHexStr("#9EBAE1"));
public Color ItemGroupBgNorth = FromHexStr("#CADCF0");
public Color ItemGroupBgSouth = FromHexStr("#D0E1F7");
public Color ItemGroupBgGlossy = FromHexStr("#BCD0E9");
public Color ButtonListBorder = FromHexStr("#B9D0ED");
public Color ButtonListBg = FromHexStr("#D4E6F8");
public Color ButtonListBgSelected = FromHexStr("#ECF3FB");
public Color DropDownBg = FromHexStr("#FAFAFA");
public Color DropDownImageBg = FromHexStr("#E9EEEE");
public Color DropDownImageSeparator = FromHexStr("#C5C5C5");
public Color DropDownBorder = FromHexStr("#868686");
public Color DropDownGripNorth = FromHexStr("#FFFFFF");
public Color DropDownGripSouth = FromHexStr("#DFE9EF");
public Color DropDownGripBorder = FromHexStr("#DDE7EE");
public Color DropDownGripDark = FromHexStr("#5574A7");
public Color DropDownGripLight = FromHexStr("#FFFFFF");
public Color DropDownCheckedButtonGlyphBg = FromHexStr("#FCF1C2");
public Color DropDownCheckedButtonGlyphBorder = FromHexStr("#F29536");
public Color SeparatorLight = FromHexStr("#FAFBFD");
public Color SeparatorDark = FromHexStr("#96B4DA");
public Color QATSeparatorLight = FromHexStr("#FAFBFD");
public Color QATSeparatorDark = FromHexStr("#96B4DA");
public Color SeparatorBg = FromHexStr("#DAE6EE");
public Color SeparatorLine = FromHexStr("#C5C5C5");
public Color TextBoxUnselectedBg = FromHexStr("#EAF2FB");
public Color TextBoxBorder = FromHexStr("#ABC1DE");
public Color ToolTipContentNorth = Color.FromArgb(250, 252, 254);// SystemColors.MenuBar;// FromHex("#C8D9ED");
public Color ToolTipContentSouth = Color.FromArgb(206, 220, 241);// SystemColors.MenuBar;// FromHex("#E7F2FF");
public Color ToolTipDarkBorder = Color.DarkGray;// Color.FromArgb(51, FromHex("#15428B"));
public Color ToolTipLightBorder = Color.FromArgb(102, Color.White);
public Color ToolTipText = WinApi.IsVista ? SystemColors.InactiveCaptionText : FromHexStr("#15428B"); // in XP SystemColors.InactiveCaptionText is hardly readable
public Color ToolStripItemTextPressed = FromHexStr("#444444");
public Color ToolStripItemTextSelected = FromHexStr("#444444");
public Color ToolStripItemText = FromHexStr("#444444");
public Color clrVerBG_Shadow = Color.FromArgb(255, 181, 190, 206);
///
/// 2013 Colors
/// Office 2013 White Theme
///
public Color ButtonChecked_2013 = FromHexStr("#CDE6F7");
public Color ButtonPressed_2013 = FromHexStr("#92C0E0");
public Color ButtonSelected_2013 = FromHexStr("#CDE6F7");
public Color OrbButton_2013 = FromHexStr("#0072C6");
public Color OrbButtonSelected_2013 = FromHexStr("#2A8AD4");
public Color OrbButtonPressed_2013 = FromHexStr("#2A8AD4");
public Color TabText_2013 = FromHexStr("#0072C6");
public Color TabTextSelected_2013 = FromHexStr("#444444");
public Color PanelBorder_2013 = FromHexStr("#15428B");
public Color RibbonBackground_2013 = FromHexStr("#FFFFFF");
public Color TabCompleteBackground_2013 = FromHexStr("#FFFFFF");
public Color TabNormalBackground_2013 = FromHexStr("#FFFFFF");
public Color TabActiveBackbround_2013 = FromHexStr("#FFFFFF");
public Color TabBorder_2013 = FromHexStr("#D4D4D4");
public Color TabCompleteBorder_2013 = FromHexStr("#D4D4D4");
public Color TabActiveBorder_2013 = FromHexStr("#D4D4D4");
public Color OrbButtonText_2013 = FromHexStr("#FFFFFF");
public Color PanelText_2013 = FromHexStr("#666666");
public Color RibbonItemText_2013 = FromHexStr("#444444");
public Color ToolTipText_2013 = FromHexStr("#262626");
public Color ToolStripItemTextPressed_2013 = FromHexStr("#444444");
public Color ToolStripItemTextSelected_2013 = FromHexStr("#444444");
public Color ToolStripItemText_2013 = FromHexStr("#444444");
#endregion
#region Methods
//internal static Color FromHex(string hex)
private static Color FromHexStr(string hex)
{
if (hex.StartsWith("#"))
hex = hex.Substring(1);
switch (hex.Length)
{
case 6:
return Color.FromArgb(
int.Parse(hex.Substring(0, 2), NumberStyles.HexNumber),
int.Parse(hex.Substring(2, 2), NumberStyles.HexNumber),
int.Parse(hex.Substring(4, 2), NumberStyles.HexNumber));
case 8:
return Color.FromArgb(
int.Parse(hex.Substring(0, 2), NumberStyles.HexNumber),
int.Parse(hex.Substring(2, 2), NumberStyles.HexNumber),
int.Parse(hex.Substring(4, 2), NumberStyles.HexNumber),
int.Parse(hex.Substring(6, 2), NumberStyles.HexNumber));
default:
throw new ArgumentException("Color not valid");
}
}
public Color FromHex(string hex)
{
return FromHexStr(hex);
}
internal static Color ToGray(Color c)
{
int m = (c.R + c.G + c.B) / 3;
return Color.FromArgb(m, m, m);
}
#endregion
#region Colors and Theme
public void SetColor(RibbonColorPart ribbonColorPart, int red, int green, int blue)
{
SetColor(ribbonColorPart, Color.FromArgb(red, green, blue));
}
public void SetColor(RibbonColorPart ribbonColorPart, string hexColor)
{
SetColor(ribbonColorPart, FromHex(hexColor));
}
public void SetColor(RibbonColorPart ribbonColorPart, Color color)
{
switch (ribbonColorPart)
{
case RibbonColorPart.OrbDropDownDarkBorder:
OrbDropDownDarkBorder = color; break;
case RibbonColorPart.OrbDropDownLightBorder:
OrbDropDownLightBorder = color; break;
case RibbonColorPart.OrbDropDownBack:
OrbDropDownBack = color; break;
case RibbonColorPart.OrbDropDownNorthA:
OrbDropDownNorthA = color; break;
case RibbonColorPart.OrbDropDownNorthB:
OrbDropDownNorthB = color; break;
case RibbonColorPart.OrbDropDownNorthC:
OrbDropDownNorthC = color; break;
case RibbonColorPart.OrbDropDownNorthD:
OrbDropDownNorthD = color; break;
case RibbonColorPart.OrbDropDownSouthC:
OrbDropDownSouthC = color; break;
case RibbonColorPart.OrbDropDownSouthD:
OrbDropDownSouthD = color; break;
case RibbonColorPart.OrbDropDownContentbg:
OrbDropDownContentbg = color; break;
case RibbonColorPart.OrbDropDownContentbglight:
OrbDropDownContentbglight = color; break;
case RibbonColorPart.OrbDropDownSeparatorlight:
OrbDropDownSeparatorlight = color; break;
case RibbonColorPart.OrbDropDownSeparatordark:
OrbDropDownSeparatordark = color; break;
case RibbonColorPart.Caption1:
Caption1 = color; break;
case RibbonColorPart.Caption2:
Caption2 = color; break;
case RibbonColorPart.Caption3:
Caption3 = color; break;
case RibbonColorPart.Caption4:
Caption4 = color; break;
case RibbonColorPart.Caption5:
Caption5 = color; break;
case RibbonColorPart.Caption6:
Caption6 = color; break;
case RibbonColorPart.Caption7:
Caption7 = color; break;
case RibbonColorPart.QuickAccessBorderDark:
QuickAccessBorderDark = color; break;
case RibbonColorPart.QuickAccessBorderLight:
QuickAccessBorderLight = color; break;
case RibbonColorPart.QuickAccessUpper:
QuickAccessUpper = color; break;
case RibbonColorPart.QuickAccessLower:
QuickAccessLower = color; break;
case RibbonColorPart.OrbOptionBorder:
OrbOptionBorder = color; break;
case RibbonColorPart.OrbOptionBackground:
OrbOptionBackground = color; break;
case RibbonColorPart.OrbOptionShine:
OrbOptionShine = color; break;
case RibbonColorPart.Arrow:
Arrow = color; break;
case RibbonColorPart.ArrowLight:
ArrowLight = color; break;
case RibbonColorPart.ArrowDisabled:
ArrowDisabled = color; break;
case RibbonColorPart.Text:
Text = color; break;
//case RibbonColorPart.RibbonBackground:
//RibbonBackground = color; break;
case RibbonColorPart.RibbonBackground:
RibbonBackground = color; break;
case RibbonColorPart.TabBorder:
TabBorder = color; break;
case RibbonColorPart.TabNorth:
TabNorth = color; break;
case RibbonColorPart.TabSouth:
TabSouth = color; break;
case RibbonColorPart.TabGlow:
TabGlow = color; break;
case RibbonColorPart.TabText:
TabText = color; break;
case RibbonColorPart.TabActiveText:
TabActiveText = color; break;
case RibbonColorPart.TabContentNorth:
TabContentNorth = color; break;
case RibbonColorPart.TabContentSouth:
TabContentSouth = color; break;
case RibbonColorPart.TabSelectedGlow:
TabSelectedGlow = color; break;
case RibbonColorPart.PanelDarkBorder:
PanelDarkBorder = color; break;
case RibbonColorPart.PanelLightBorder:
PanelLightBorder = color; break;
case RibbonColorPart.PanelTextBackground:
PanelTextBackground = color; break;
case RibbonColorPart.PanelTextBackgroundSelected:
PanelTextBackgroundSelected = color; break;
case RibbonColorPart.PanelText:
PanelText = color; break;
case RibbonColorPart.PanelBackgroundSelected:
PanelBackgroundSelected = color; break;
case RibbonColorPart.PanelOverflowBackground:
PanelOverflowBackground = color; break;
case RibbonColorPart.PanelOverflowBackgroundPressed:
PanelOverflowBackgroundPressed = color; break;
case RibbonColorPart.PanelOverflowBackgroundSelectedNorth:
PanelOverflowBackgroundSelectedNorth = color; break;
case RibbonColorPart.PanelOverflowBackgroundSelectedSouth:
PanelOverflowBackgroundSelectedSouth = color; break;
case RibbonColorPart.ButtonBgOut:
ButtonBgOut = color; break;
case RibbonColorPart.ButtonBgCenter:
ButtonBgCenter = color; break;
case RibbonColorPart.ButtonBorderOut:
ButtonBorderOut = color; break;
case RibbonColorPart.ButtonBorderIn:
ButtonBorderIn = color; break;
case RibbonColorPart.ButtonGlossyNorth:
ButtonGlossyNorth = color; break;
case RibbonColorPart.ButtonGlossySouth:
ButtonGlossySouth = color; break;
case RibbonColorPart.ButtonDisabledBgOut:
ButtonDisabledBgOut = color; break;
case RibbonColorPart.ButtonDisabledBgCenter:
ButtonDisabledBgCenter = color; break;
case RibbonColorPart.ButtonDisabledBorderOut:
ButtonDisabledBorderOut = color; break;
case RibbonColorPart.ButtonDisabledBorderIn:
ButtonDisabledBorderIn = color; break;
case RibbonColorPart.ButtonDisabledGlossyNorth:
ButtonDisabledGlossyNorth = color; break;
case RibbonColorPart.ButtonDisabledGlossySouth:
ButtonDisabledGlossySouth = color; break;
case RibbonColorPart.ButtonSelectedBgOut:
ButtonSelectedBgOut = color; break;
case RibbonColorPart.ButtonSelectedBgCenter:
ButtonSelectedBgCenter = color; break;
case RibbonColorPart.ButtonSelectedBorderOut:
ButtonSelectedBorderOut = color; break;
case RibbonColorPart.ButtonSelectedBorderIn:
ButtonSelectedBorderIn = color; break;
case RibbonColorPart.ButtonSelectedGlossyNorth:
ButtonSelectedGlossyNorth = color; break;
case RibbonColorPart.ButtonSelectedGlossySouth:
ButtonSelectedGlossySouth = color; break;
case RibbonColorPart.ButtonPressedBgOut:
ButtonPressedBgOut = color; break;
case RibbonColorPart.ButtonPressedBgCenter:
ButtonPressedBgCenter = color; break;
case RibbonColorPart.ButtonPressedBorderOut:
ButtonPressedBorderOut = color; break;
case RibbonColorPart.ButtonPressedBorderIn:
ButtonPressedBorderIn = color; break;
case RibbonColorPart.ButtonPressedGlossyNorth:
ButtonPressedGlossyNorth = color; break;
case RibbonColorPart.ButtonPressedGlossySouth:
ButtonPressedGlossySouth = color; break;
case RibbonColorPart.ButtonCheckedBgOut:
ButtonCheckedBgOut = color; break;
case RibbonColorPart.ButtonCheckedBgCenter:
ButtonCheckedBgCenter = color; break;
case RibbonColorPart.ButtonCheckedBorderOut:
ButtonCheckedBorderOut = color; break;
case RibbonColorPart.ButtonCheckedBorderIn:
ButtonCheckedBorderIn = color; break;
case RibbonColorPart.ButtonCheckedGlossyNorth:
ButtonCheckedGlossyNorth = color; break;
case RibbonColorPart.ButtonCheckedGlossySouth:
ButtonCheckedGlossySouth = color; break;
case RibbonColorPart.ButtonCheckedSelectedBgOut:
ButtonCheckedSelectedBgOut = color; break;
case RibbonColorPart.ButtonCheckedSelectedBgCenter:
ButtonCheckedSelectedBgCenter = color; break;
case RibbonColorPart.ButtonCheckedSelectedBorderOut:
ButtonCheckedSelectedBorderOut = color; break;
case RibbonColorPart.ButtonCheckedSelectedBorderIn:
ButtonCheckedSelectedBorderIn = color; break;
case RibbonColorPart.ButtonCheckedSelectedGlossyNorth:
ButtonCheckedSelectedGlossyNorth = color; break;
case RibbonColorPart.ButtonCheckedSelectedGlossySouth:
ButtonCheckedSelectedGlossySouth = color; break;
case RibbonColorPart.ItemGroupOuterBorder:
ItemGroupOuterBorder = color; break;
case RibbonColorPart.ItemGroupInnerBorder:
ItemGroupInnerBorder = color; break;
case RibbonColorPart.ItemGroupSeparatorLight:
ItemGroupSeparatorLight = color; break;
case RibbonColorPart.ItemGroupSeparatorDark:
ItemGroupSeparatorDark = color; break;
case RibbonColorPart.ItemGroupBgNorth:
ItemGroupBgNorth = color; break;
case RibbonColorPart.ItemGroupBgSouth:
ItemGroupBgSouth = color; break;
case RibbonColorPart.ItemGroupBgGlossy:
ItemGroupBgGlossy = color; break;
case RibbonColorPart.ButtonListBorder:
ButtonListBorder = color; break;
case RibbonColorPart.ButtonListBg:
ButtonListBg = color; break;
case RibbonColorPart.ButtonListBgSelected:
ButtonListBgSelected = color; break;
case RibbonColorPart.DropDownBg:
DropDownBg = color; break;
case RibbonColorPart.DropDownImageBg:
DropDownImageBg = color; break;
case RibbonColorPart.DropDownImageSeparator:
DropDownImageSeparator = color; break;
case RibbonColorPart.DropDownBorder:
DropDownBorder = color; break;
case RibbonColorPart.DropDownGripNorth:
DropDownGripNorth = color; break;
case RibbonColorPart.DropDownGripSouth:
DropDownGripSouth = color; break;
case RibbonColorPart.DropDownGripBorder:
DropDownGripBorder = color; break;
case RibbonColorPart.DropDownGripDark:
DropDownGripDark = color; break;
case RibbonColorPart.DropDownGripLight:
DropDownGripLight = color; break;
case RibbonColorPart.DropDownCheckedButtonGlyphBg:
DropDownCheckedButtonGlyphBg = color; break;
case RibbonColorPart.DropDownCheckedButtonGlyphBorder:
DropDownCheckedButtonGlyphBorder = color; break;
case RibbonColorPart.SeparatorLight:
SeparatorLight = color; break;
case RibbonColorPart.SeparatorDark:
SeparatorDark = color; break;
case RibbonColorPart.QATSeparatorLight:
QATSeparatorLight = color; break;
case RibbonColorPart.QATSeparatorDark:
QATSeparatorDark = color; break;
case RibbonColorPart.SeparatorBg:
SeparatorBg = color; break;
case RibbonColorPart.SeparatorLine:
SeparatorLine = color; break;
case RibbonColorPart.TextBoxUnselectedBg:
TextBoxUnselectedBg = color; break;
case RibbonColorPart.TextBoxBorder:
TextBoxBorder = color; break;
case RibbonColorPart.ToolTipContentNorth:
ToolTipContentNorth = color; break;
case RibbonColorPart.ToolTipContentSouth:
ToolTipContentSouth = color; break;
case RibbonColorPart.ToolTipDarkBorder:
ToolTipDarkBorder = color; break;
case RibbonColorPart.ToolTipLightBorder:
ToolTipLightBorder = color; break;
case RibbonColorPart.ToolStripItemTextPressed:
ToolStripItemTextPressed = color; break;
case RibbonColorPart.ToolStripItemTextSelected:
ToolStripItemTextSelected = color; break;
case RibbonColorPart.ToolStripItemText:
ToolStripItemText = color; break;
case RibbonColorPart.ButtonChecked_2013:
ButtonChecked_2013 = color; break;
case RibbonColorPart.ButtonPressed_2013:
ButtonPressed_2013 = color; break;
case RibbonColorPart.ButtonSelected_2013:
ButtonSelected_2013 = color; break;
case RibbonColorPart.OrbButton_2013:
OrbButton_2013 = color; break;
case RibbonColorPart.OrbButtonSelected_2013:
OrbButtonSelected_2013 = color; break;
case RibbonColorPart.OrbButtonPressed_2013:
OrbButtonPressed_2013 = color; break;
case RibbonColorPart.TabText_2013:
TabText_2013 = color; break;
case RibbonColorPart.TabTextSelected_2013:
TabTextSelected_2013 = color; break;
case RibbonColorPart.PanelBorder_2013:
PanelBorder_2013 = color; break;
case RibbonColorPart.RibbonBackground_2013:
RibbonBackground_2013 = color; break;
case RibbonColorPart.TabCompleteBackground_2013:
TabCompleteBackground_2013 = color; break;
case RibbonColorPart.TabNormalBackground_2013:
TabNormalBackground_2013 = color; break;
case RibbonColorPart.TabActiveBackbround_2013:
TabActiveBackbround_2013 = color; break;
case RibbonColorPart.TabBorder_2013:
TabBorder_2013 = color; break;
case RibbonColorPart.TabCompleteBorder_2013:
TabCompleteBorder_2013 = color; break;
case RibbonColorPart.TabActiveBorder_2013:
TabActiveBorder_2013 = color; break;
case RibbonColorPart.OrbButtonText_2013:
OrbButtonText_2013 = color; break;
case RibbonColorPart.PanelText_2013:
PanelText_2013 = color; break;
case RibbonColorPart.RibbonItemText_2013:
RibbonItemText_2013 = color; break;
case RibbonColorPart.ToolTipText_2013:
ToolTipText_2013 = color; break;
case RibbonColorPart.ToolStripItemTextPressed_2013:
ToolStripItemTextPressed_2013 = color; break;
case RibbonColorPart.ToolStripItemTextSelected_2013:
ToolStripItemTextSelected_2013 = color; break;
case RibbonColorPart.ToolStripItemText_2013:
ToolStripItemText_2013 = color; break;
default:
break;
}
}
public string GetColorHexStr(RibbonColorPart ribbonColorPart)
{
Color c = GetColor(ribbonColorPart);
StringBuilder sb = new StringBuilder();
sb.AppendFormat("#");
sb.Append(BitConverter.ToString(new[] { c.R }));
sb.Append(BitConverter.ToString(new[] { c.G }));
sb.Append(BitConverter.ToString(new[] { c.B }));
return sb.ToString();
}
public string GetFullColorHexStr(RibbonColorPart ribbonColorPart)
{
Color c = GetColor(ribbonColorPart);
StringBuilder sb = new StringBuilder();
sb.AppendFormat("#");
sb.Append(BitConverter.ToString(new[] { c.A }));
sb.Append(BitConverter.ToString(new[] { c.R }));
sb.Append(BitConverter.ToString(new[] { c.G }));
sb.Append(BitConverter.ToString(new[] { c.B }));
return sb.ToString();
}
public Color GetColor(RibbonColorPart ribbonColorPart)
{
switch (ribbonColorPart)
{
case RibbonColorPart.OrbDropDownDarkBorder:
return OrbDropDownDarkBorder;
case RibbonColorPart.OrbDropDownLightBorder:
return OrbDropDownLightBorder;
case RibbonColorPart.OrbDropDownBack:
return OrbDropDownBack;
case RibbonColorPart.OrbDropDownNorthA:
return OrbDropDownNorthA;
case RibbonColorPart.OrbDropDownNorthB:
return OrbDropDownNorthB;
case RibbonColorPart.OrbDropDownNorthC:
return OrbDropDownNorthC;
case RibbonColorPart.OrbDropDownNorthD:
return OrbDropDownNorthD;
case RibbonColorPart.OrbDropDownSouthC:
return OrbDropDownSouthC;
case RibbonColorPart.OrbDropDownSouthD:
return OrbDropDownSouthD;
case RibbonColorPart.OrbDropDownContentbg:
return OrbDropDownContentbg;
case RibbonColorPart.OrbDropDownContentbglight:
return OrbDropDownContentbglight;
case RibbonColorPart.OrbDropDownSeparatorlight:
return OrbDropDownSeparatorlight;
case RibbonColorPart.OrbDropDownSeparatordark:
return OrbDropDownSeparatordark;
case RibbonColorPart.Caption1:
return Caption1;
case RibbonColorPart.Caption2:
return Caption2;
case RibbonColorPart.Caption3:
return Caption3;
case RibbonColorPart.Caption4:
return Caption4;
case RibbonColorPart.Caption5:
return Caption5;
case RibbonColorPart.Caption6:
return Caption6;
case RibbonColorPart.Caption7:
return Caption7;
case RibbonColorPart.QuickAccessBorderDark:
return QuickAccessBorderDark;
case RibbonColorPart.QuickAccessBorderLight:
return QuickAccessBorderLight;
case RibbonColorPart.QuickAccessUpper:
return QuickAccessUpper;
case RibbonColorPart.QuickAccessLower:
return QuickAccessLower;
case RibbonColorPart.OrbOptionBorder:
return OrbOptionBorder;
case RibbonColorPart.OrbOptionBackground:
return OrbOptionBackground;
case RibbonColorPart.OrbOptionShine:
return OrbOptionShine;
case RibbonColorPart.Arrow:
return Arrow;
case RibbonColorPart.ArrowLight:
return ArrowLight;
case RibbonColorPart.ArrowDisabled:
return ArrowDisabled;
case RibbonColorPart.Text:
return Text;
case RibbonColorPart.RibbonBackground:
return RibbonBackground;
case RibbonColorPart.TabBorder:
return TabBorder;
case RibbonColorPart.TabSelectedBorder:
return TabSelectedBorder;
case RibbonColorPart.TabNorth:
return TabNorth;
case RibbonColorPart.TabSouth:
return TabSouth;
case RibbonColorPart.TabGlow:
return TabGlow;
case RibbonColorPart.TabText:
return TabText;
case RibbonColorPart.TabActiveText:
return TabActiveText;
case RibbonColorPart.TabContentNorth:
return TabContentNorth;
case RibbonColorPart.TabContentSouth:
return TabContentSouth;
case RibbonColorPart.TabSelectedGlow:
return TabSelectedGlow;
case RibbonColorPart.PanelDarkBorder:
return PanelDarkBorder;
case RibbonColorPart.PanelLightBorder:
return PanelLightBorder;
case RibbonColorPart.PanelTextBackground:
return PanelTextBackground;
case RibbonColorPart.PanelTextBackgroundSelected:
return PanelTextBackgroundSelected;
case RibbonColorPart.PanelText:
return PanelText;
case RibbonColorPart.PanelBackgroundSelected:
return PanelBackgroundSelected;
case RibbonColorPart.PanelOverflowBackground:
return PanelOverflowBackground;
case RibbonColorPart.PanelOverflowBackgroundPressed:
return PanelOverflowBackgroundPressed;
case RibbonColorPart.PanelOverflowBackgroundSelectedNorth:
return PanelOverflowBackgroundSelectedNorth;
case RibbonColorPart.PanelOverflowBackgroundSelectedSouth:
return PanelOverflowBackgroundSelectedSouth;
case RibbonColorPart.ButtonBgOut:
return ButtonBgOut;
case RibbonColorPart.ButtonBgCenter:
return ButtonBgCenter;
case RibbonColorPart.ButtonBorderOut:
return ButtonBorderOut;
case RibbonColorPart.ButtonBorderIn:
return ButtonBorderIn;
case RibbonColorPart.ButtonGlossyNorth:
return ButtonGlossyNorth;
case RibbonColorPart.ButtonGlossySouth:
return ButtonGlossySouth;
case RibbonColorPart.ButtonDisabledBgOut:
return ButtonDisabledBgOut;
case RibbonColorPart.ButtonDisabledBgCenter:
return ButtonDisabledBgCenter;
case RibbonColorPart.ButtonDisabledBorderOut:
return ButtonDisabledBorderOut;
case RibbonColorPart.ButtonDisabledBorderIn:
return ButtonDisabledBorderIn;
case RibbonColorPart.ButtonDisabledGlossyNorth:
return ButtonDisabledGlossyNorth;
case RibbonColorPart.ButtonDisabledGlossySouth:
return ButtonDisabledGlossySouth;
case RibbonColorPart.ButtonSelectedBgOut:
return ButtonSelectedBgOut;
case RibbonColorPart.ButtonSelectedBgCenter:
return ButtonSelectedBgCenter;
case RibbonColorPart.ButtonSelectedBorderOut:
return ButtonSelectedBorderOut;
case RibbonColorPart.ButtonSelectedBorderIn:
return ButtonSelectedBorderIn;
case RibbonColorPart.ButtonSelectedGlossyNorth:
return ButtonSelectedGlossyNorth;
case RibbonColorPart.ButtonSelectedGlossySouth:
return ButtonSelectedGlossySouth;
case RibbonColorPart.ButtonPressedBgOut:
return ButtonPressedBgOut;
case RibbonColorPart.ButtonPressedBgCenter:
return ButtonPressedBgCenter;
case RibbonColorPart.ButtonPressedBorderOut:
return ButtonPressedBorderOut;
case RibbonColorPart.ButtonPressedBorderIn:
return ButtonPressedBorderIn;
case RibbonColorPart.ButtonPressedGlossyNorth:
return ButtonPressedGlossyNorth;
case RibbonColorPart.ButtonPressedGlossySouth:
return ButtonPressedGlossySouth;
case RibbonColorPart.ButtonCheckedBgOut:
return ButtonCheckedBgOut;
case RibbonColorPart.ButtonCheckedBgCenter:
return ButtonCheckedBgCenter;
case RibbonColorPart.ButtonCheckedBorderOut:
return ButtonCheckedBorderOut;
case RibbonColorPart.ButtonCheckedBorderIn:
return ButtonCheckedBorderIn;
case RibbonColorPart.ButtonCheckedGlossyNorth:
return ButtonCheckedGlossyNorth;
case RibbonColorPart.ButtonCheckedGlossySouth:
return ButtonCheckedGlossySouth;
case RibbonColorPart.ButtonCheckedSelectedBgOut:
return ButtonCheckedSelectedBgOut;
case RibbonColorPart.ButtonCheckedSelectedBgCenter:
return ButtonCheckedSelectedBgCenter;
case RibbonColorPart.ButtonCheckedSelectedBorderOut:
return ButtonCheckedSelectedBorderOut;
case RibbonColorPart.ButtonCheckedSelectedBorderIn:
return ButtonCheckedSelectedBorderIn;
case RibbonColorPart.ButtonCheckedSelectedGlossyNorth:
return ButtonCheckedSelectedGlossyNorth;
case RibbonColorPart.ButtonCheckedSelectedGlossySouth:
return ButtonCheckedSelectedGlossySouth;
case RibbonColorPart.ItemGroupOuterBorder:
return ItemGroupOuterBorder;
case RibbonColorPart.ItemGroupInnerBorder:
return ItemGroupInnerBorder;
case RibbonColorPart.ItemGroupSeparatorLight:
return ItemGroupSeparatorLight;
case RibbonColorPart.ItemGroupSeparatorDark:
return ItemGroupSeparatorDark;
case RibbonColorPart.ItemGroupBgNorth:
return ItemGroupBgNorth;
case RibbonColorPart.ItemGroupBgSouth:
return ItemGroupBgSouth;
case RibbonColorPart.ItemGroupBgGlossy:
return ItemGroupBgGlossy;
case RibbonColorPart.ButtonListBorder:
return ButtonListBorder;
case RibbonColorPart.ButtonListBg:
return ButtonListBg;
case RibbonColorPart.ButtonListBgSelected:
return ButtonListBgSelected;
case RibbonColorPart.DropDownBg:
return DropDownBg;
case RibbonColorPart.DropDownImageBg:
return DropDownImageBg;
case RibbonColorPart.DropDownImageSeparator:
return DropDownImageSeparator;
case RibbonColorPart.DropDownBorder:
return DropDownBorder;
case RibbonColorPart.DropDownGripNorth:
return DropDownGripNorth;
case RibbonColorPart.DropDownGripSouth:
return DropDownGripSouth;
case RibbonColorPart.DropDownGripBorder:
return DropDownGripBorder;
case RibbonColorPart.DropDownGripDark:
return DropDownGripDark;
case RibbonColorPart.DropDownGripLight:
return DropDownGripLight;
case RibbonColorPart.DropDownCheckedButtonGlyphBg:
return DropDownCheckedButtonGlyphBg;
case RibbonColorPart.DropDownCheckedButtonGlyphBorder:
return DropDownCheckedButtonGlyphBorder;
case RibbonColorPart.SeparatorLight:
return SeparatorLight;
case RibbonColorPart.SeparatorDark:
return SeparatorDark;
case RibbonColorPart.QATSeparatorLight:
return QATSeparatorLight;
case RibbonColorPart.QATSeparatorDark:
return QATSeparatorDark;
case RibbonColorPart.SeparatorBg:
return SeparatorBg;
case RibbonColorPart.SeparatorLine:
return SeparatorLine;
case RibbonColorPart.TextBoxUnselectedBg:
return TextBoxUnselectedBg;
case RibbonColorPart.TextBoxBorder:
return TextBoxBorder;
case RibbonColorPart.ToolTipContentNorth:
return ToolTipContentNorth;
case RibbonColorPart.ToolTipContentSouth:
return ToolTipContentSouth;
case RibbonColorPart.ToolTipDarkBorder:
return ToolTipDarkBorder;
case RibbonColorPart.ToolTipLightBorder:
return ToolTipLightBorder;
case RibbonColorPart.ToolStripItemTextPressed:
return ToolStripItemTextPressed;
case RibbonColorPart.ToolStripItemTextSelected:
return ToolStripItemTextSelected;
case RibbonColorPart.ToolStripItemText:
return ToolStripItemText;
case RibbonColorPart.ButtonPressed_2013:
return ButtonPressed_2013;
case RibbonColorPart.ButtonSelected_2013:
return ButtonSelected_2013;
case RibbonColorPart.OrbButton_2013:
return OrbButton_2013;
case RibbonColorPart.OrbButtonSelected_2013:
return OrbButtonSelected_2013;
case RibbonColorPart.OrbButtonPressed_2013:
return OrbButtonPressed_2013;
case RibbonColorPart.TabText_2013:
return TabText_2013;
case RibbonColorPart.TabTextSelected_2013:
return TabTextSelected_2013;
case RibbonColorPart.PanelBorder_2013:
return PanelBorder_2013;
case RibbonColorPart.RibbonBackground_2013:
return RibbonBackground_2013;
case RibbonColorPart.TabCompleteBackground_2013:
return TabCompleteBackground_2013;
case RibbonColorPart.TabNormalBackground_2013:
return TabNormalBackground_2013;
case RibbonColorPart.TabActiveBackbround_2013:
return TabActiveBackbround_2013;
case RibbonColorPart.TabBorder_2013:
return TabBorder_2013;
case RibbonColorPart.TabCompleteBorder_2013:
return TabCompleteBorder_2013;
case RibbonColorPart.TabActiveBorder_2013:
return TabActiveBorder_2013;
case RibbonColorPart.OrbButtonText_2013:
return OrbButtonText_2013;
case RibbonColorPart.PanelText_2013:
return PanelText_2013;
case RibbonColorPart.RibbonItemText_2013:
return RibbonItemText_2013;
case RibbonColorPart.ToolTipText_2013:
return ToolTipText_2013;
case RibbonColorPart.ToolStripItemTextPressed_2013:
return ToolStripItemTextPressed_2013;
case RibbonColorPart.ToolStripItemTextSelected_2013:
return ToolStripItemTextSelected_2013;
case RibbonColorPart.ToolStripItemText_2013:
return ToolStripItemText_2013;
default:
return Color.White;
}
}
#endregion
#region Theme File Read / Write
public string WriteThemeIniFile()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("[Properties]");
sb.AppendLine("ThemeName = " + ThemeName);
sb.AppendLine("Author = " + ThemeAuthor);
sb.AppendLine("AuthorEmail = " + ThemeAuthorEmail);
sb.AppendLine("AuthorWebsite = " + ThemeAuthorWebsite);
sb.AppendLine("DateCreated = " + ThemeDateCreated);
sb.AppendLine();
sb.AppendLine("[ColorTable]");
int count = Enum.GetNames(typeof(RibbonColorPart)).Length;
for (int i = 0; i < count; i++)
{
sb.AppendLine(((RibbonColorPart)i) + " = " + GetFullColorHexStr((RibbonColorPart)i));
}
return sb.ToString();
}
public void ReadThemeIniFile(string iniFileContent)
{
string[] sa = null;
if (iniFileContent.Contains("\r\n"))
{
sa = iniFileContent.Split(new[] { "\r\n" }, StringSplitOptions.None);
}
else if (iniFileContent.Contains("\n"))
{
sa = iniFileContent.Split(new[] { "\n" }, StringSplitOptions.None);
}
else
{
throw new ArgumentException("Unrecognized end line delimeter.");
}
Dictionary dic1 = new Dictionary();
foreach (RibbonColorPart e in Enum.GetValues(typeof(RibbonColorPart)))
{
dic1[e.ToString().ToLower()] = e;
}
foreach (string s in sa)
{
string a = s.Trim();
if (a.Length == 0)
{
}
else
{
string[] sb = a.Split('=');
if (sb.Length != 2)
continue;
string b1 = sb[0].Trim().ToLower();
string b2 = sb[1].Trim();
if (b1 == "author")
ThemeAuthor = b2;
else if (b1 == "authorwebsite")
ThemeAuthorWebsite = b2;
else if (b1 == "authoremail")
ThemeAuthorEmail = b2;
else if (b1 == "datecreated")
ThemeDateCreated = b2;
else if (b1 == "themename")
ThemeName = b2;
else
{
if (dic1.ContainsKey(b1))
{
SetColor(dic1[b1], b2);
}
}
}
}
}
public string WriteThemeXmlFile()
{
string a = "";
StringWriter str;
{
using (XmlTextWriter xml = new XmlTextWriter(str = new StringWriter()))
{
xml.WriteStartDocument();
xml.WriteWhitespace("\r\n");
xml.WriteStartElement("RibbonColorTheme");
xml.WriteWhitespace("\r\n\t");
xml.WriteStartElement("Properties");
xml.WriteWhitespace("\r\n\t\t");
xml.WriteElementString("ThemeName", ThemeName);
xml.WriteWhitespace("\r\n\t\t");
xml.WriteElementString("Author", ThemeAuthor);
xml.WriteWhitespace("\r\n\t\t");
xml.WriteElementString("AuthorEmail", ThemeAuthorEmail);
xml.WriteWhitespace("\r\n\t\t");
xml.WriteElementString("AuthorWebsite", ThemeAuthorWebsite);
xml.WriteWhitespace("\r\n\t\t");
xml.WriteElementString("DateCreated", ThemeDateCreated);
xml.WriteWhitespace("\r\n\t");
xml.WriteEndElement();
xml.WriteWhitespace("\r\n\t");
xml.WriteStartElement("ColorTable");
int count = Enum.GetNames(typeof(RibbonColorPart)).Length;
for (int i = 0; i < count; i++)
{
xml.WriteWhitespace("\r\n\t\t");
xml.WriteElementString(((RibbonColorPart)i).ToString(), GetFullColorHexStr((RibbonColorPart)i));
}
xml.WriteWhitespace("\r\n\t");
xml.WriteEndElement(); xml.WriteWhitespace("\r\n");
xml.WriteEndElement(); xml.WriteWhitespace("\r\n");
xml.WriteEndDocument();
a = str.ToString();
}
}
return a;
}
public void ReadThemeXmlFile(string xmlFileContent)
{
Dictionary dic1 = new Dictionary();
foreach (RibbonColorPart e in Enum.GetValues(typeof(RibbonColorPart)))
{
dic1[e.ToString().ToLower()] = e;
}
StringReader stringReader;
using (XmlTextReader reader = new XmlTextReader(stringReader = new StringReader(xmlFileContent)))
{
while (reader.Read())
{
switch (reader.Name)
{
case "ThemeName":
ThemeName = reader.ReadString();
break;
case "Author":
ThemeAuthor = reader.ReadString();
break;
case "AuthorEmail":
ThemeAuthorEmail = reader.ReadString();
break;
case "AuthorWebsite":
ThemeAuthorWebsite = reader.ReadString();
break;
case "DateCreated":
ThemeDateCreated = reader.ReadString();
break;
default:
{
if (dic1.ContainsKey(reader.Name.ToLower()))
{
SetColor(dic1[reader.Name.ToLower()], reader.ReadString());
}
break;
}
}
}
}
}
#endregion
}
}