using System; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Drawing; namespace DevComponents.DotNetBar { /// /// Summary description for Themes. /// internal abstract class Themes:IDisposable { protected Control m_Parent=null; protected IntPtr m_hTheme=IntPtr.Zero; public static int DrawShadowText(Graphics g, Rectangle bounds, string text, ThemeTextFormat format, Color textColor, Color shadowColor, int shadowOffsetX, int shadowOffsetY) { int result = 0; IntPtr hdc = g.GetHdc(); try { RECT r = new RECT(bounds); result = DrawShadowText(hdc, text, (uint)text.Length, ref r, (int)format, new COLORREF(textColor), new COLORREF(shadowColor), shadowOffsetX, shadowOffsetY); } finally { g.ReleaseHdc(hdc); } return result; } [System.Runtime.InteropServices.DllImport("ComCtl32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] public static extern int DrawShadowText(IntPtr hdc, string text, uint textLength, ref RECT r, int flags, COLORREF textColor, COLORREF shadowColor, int shadowXOffset, int shadowYOffset); [StructLayoutAttribute(LayoutKind.Sequential)] public struct RECT { public RECT(Rectangle r) { this.left=r.Left; this.top=r.Top; this.right=r.Right; this.bottom=r.Bottom; } int left; int top; int right; int bottom; public void Offset(int x, int y) { left += x; top += y; } }; [StructLayoutAttribute(LayoutKind.Sequential)] public struct MARGINS { int cxLeftWidth; int cxRightWidth; int cyTopHeight; int cyBottomHeight; }; [StructLayoutAttribute(LayoutKind.Sequential)] public struct SIZE { public int Width; public int Height; }; [StructLayout(LayoutKind.Sequential)] public struct COLORREF { public uint ColorDWORD; public COLORREF(System.Drawing.Color color) { ColorDWORD = (uint)color.R + (((uint)color.G) << 8) + (((uint)color.B) << 16); } public System.Drawing.Color GetColor() { return System.Drawing.Color.FromArgb((int)(0x000000FFU & ColorDWORD), (int)(0x0000FF00U & ColorDWORD) >> 8, (int)(0x00FF0000U & ColorDWORD) >> 16); } public void SetColor(System.Drawing.Color color) { ColorDWORD = (uint)color.R + (((uint)color.G) << 8) + (((uint)color.B) << 16); } } public enum DTT_VALIDBITS : int { DTT_TEXTCOLOR = (1 << 0), // crText has been specified DTT_BORDERCOLOR = (1 << 1), // crBorder has been specified DTT_SHADOWCOLOR = (1 << 2), // crShadow has been specified DTT_SHADOWTYPE = (1 << 3), // iTextShadowType has been specified DTT_SHADOWOFFSET = (1 << 4), // ptShadowOffset has been specified DTT_BORDERSIZE = (1 << 5), // iBorderSize has been specified DTT_FONTPROP = (1 << 6), // iFontPropId has been specified DTT_COLORPROP = (1 << 7), // iColorPropId has been specified DTT_STATEID = (1 << 8), // IStateId has been specified DTT_CALCRECT = (1 << 9), // Use pRect as and in/out parameter DTT_APPLYOVERLAY = (1 << 10), // fApplyOverlay has been specified DTT_GLOWSIZE = (1 << 11), // iGlowSize has been specified DTT_CALLBACK = (1 << 12), // pfnDrawTextCallback has been specified DTT_COMPOSITED = (1 << 13) // Draws text with antialiased alpha (needs a DIB section) } public enum ThemeFontId : int { TMT_CAPTIONFONT = 801, TMT_SMALLCAPTIONFONT = 802, TMT_MENUFONT = 803, TMT_STATUSFONT = 804, TMT_MSGBOXFONT = 805, TMT_ICONTITLEFONT = 806 } [StructLayoutAttribute(LayoutKind.Sequential)] public struct DTTOPTS { public int dwSize; public int dwFlags; public COLORREF crText; public COLORREF crBorder; public COLORREF crShadow; public int iTextShadowType; public WinApi.POINT ptShadowOffset; public int iBorderSize; public int iFontPropId; public int iColorPropId; public int iStateId; public bool fApplyOverlay; public int iGlowSize; public int pfnDrawTextCallback; public int lParam; }; [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern IntPtr OpenThemeData(IntPtr hWnd, string pszClassList); [DllImport("UxTheme.dll", CharSet = CharSet.Auto)] protected static extern IntPtr OpenThemeDataEx(IntPtr hWnd, string pszClassList, int flags); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int CloseThemeData(IntPtr hTheme); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int DrawThemeBackground(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pRect, ref RECT pClipRect); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int DrawThemeBackground(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pRect, IntPtr pCliprect); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int EnableTheming(bool fEnable); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int DrawThemeEdge(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pDestRect,uint uEdge,uint uFlags,ref RECT pContentRect); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int DrawThemeIcon(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pRect, IntPtr himl, int iImageIndex); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int DrawThemeParentBackground(IntPtr hwnd, IntPtr hdc, ref RECT prc); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int DrawThemeText(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, string pszText, int iCharCount, int dwTextFlags, int dwTextFlags2,ref RECT pRect); [DllImport("UxTheme.dll", CharSet = CharSet.Auto)] public static extern int DrawThemeTextEx(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, string pszText, int iCharCount, int dwTextFlags, ref RECT pRect, ref DTTOPTS options); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int EnableThemeDialogTexture(IntPtr hwnd, long dwFlags); [DllImport("uxtheme", ExactSpelling=true, CharSet=CharSet.Unicode)] public extern static Int32 GetCurrentThemeName(string stringThemeName, int lengthThemeName, string stringColorName, int lengthColorName, string stringSizeName, int lengthSizeName); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern long GetThemeAppProperties(); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeBackgroundContentRect(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pBoundingRect, ref RECT pContentRect); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeBackgroundExtent(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pContentRect, ref RECT pExtentRect); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeBackgroundRegion(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pRect, ref IntPtr pRegion); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeBool(IntPtr hTheme, int iPartId, int iStateId, int iPropId, ref bool pfVal); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeColor(IntPtr hTheme, int iPartId, int iStateId, int iPropId, ref long pColor); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeDocumentationProperty(string pszThemeName, string pszPropertyName, string pszValueBuff, int cchMaxValChars); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeEnumValue(IntPtr hTheme, int iPartId, int iStateId, int iPropId, ref int piVal); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeFilename(IntPtr hTheme, int iPartId, int iStateId, int iPropId, ref string pszThemeFilename, int cchMaxBuffChars); //[DllImport("UxTheme.dll",CharSet=CharSet.Auto)] //private static extern int GetThemeFont(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, int iPropId, IntPtr pFont); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemeInt(IntPtr hTheme,int iPartId,int iStateId,int iPropId,ref int piVal); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] private static extern int GetThemeMargins(IntPtr hTheme, IntPtr hdc, int iPartId,int iStateId,int iPropId,ref RECT prc, ref MARGINS pMargins); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern bool IsThemeActive(); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] internal static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int SetWindowTheme(IntPtr hwnd, IntPtr pszSubAppName, string pszSubIdList); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int SetWindowTheme(IntPtr hwnd, IntPtr pszSubAppName, IntPtr pszSubIdList); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern bool IsThemePartDefined(IntPtr hTheme, int iPartId, int iStateId); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemePartSize(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT prc, int eSize, ref SIZE psz); [DllImport("UxTheme.dll",CharSet=CharSet.Auto)] protected static extern int GetThemePartSize(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, IntPtr prc, int eSize, ref SIZE psz); [DllImport("gdi32.dll",CharSet=CharSet.Auto)] protected static extern IntPtr SelectObject(IntPtr hdc,IntPtr hgdiobj); protected abstract string ThemeClass {get;} public static bool ThemesActive=_IsThemeActive(); public Themes(Control parent) { m_Parent=parent; m_hTheme=OpenThemeData(parent.Handle,this.ThemeClass); } ~Themes() { if(m_hTheme!=IntPtr.Zero) this.Dispose(); } private static bool _IsThemeActive() { if(!BarFunctions.ThemedOS) // System.Windows.Forms.OSFeature.Feature.IsPresent(System.Windows.Forms.OSFeature.Themes)) return false; return IsThemeActive(); } public static void RefreshIsThemeActive() { ThemesActive=_IsThemeActive(); } public static int SetWindowTheme(Control ctrl, string sTheme) { return SetWindowTheme(ctrl.Handle,IntPtr.Zero,sTheme); } protected virtual void InternalDrawBackground(Graphics g, ThemePart part, ThemeState state, Rectangle r) { RECT rDraw=new RECT(r); IntPtr hdc=g.GetHdc(); try { int hresult = DrawThemeBackground(m_hTheme, hdc, part.Value, state.Value, ref rDraw, IntPtr.Zero); } finally { g.ReleaseHdc(hdc); } } protected virtual void InternalDrawBackground(Graphics g, ThemePart part, ThemeState state, Rectangle r, Rectangle clip) { RECT rDraw=new RECT(r); RECT rClip=new RECT(clip); IntPtr hdc=g.GetHdc(); try { int hresult = DrawThemeBackground(m_hTheme, hdc, part.Value, state.Value, ref rDraw, ref rClip); } finally { g.ReleaseHdc(hdc); } } protected virtual IntPtr InternalGetThemeBackgroundRegion(Graphics g, ThemePart part, ThemeState state, Rectangle r) { RECT rDraw=new RECT(r); IntPtr hdc=g.GetHdc(); IntPtr region = IntPtr.Zero; try { GetThemeBackgroundRegion(m_hTheme, hdc, part.Value, state.Value, ref rDraw, ref region); } finally { g.ReleaseHdc(hdc); } return region; } protected virtual void InternalDrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemePart part, ThemeState state, ThemeTextFormat format, bool drawdisabled) { RECT rDraw=new RECT(layoutRect); IntPtr hdc=g.GetHdc(); IntPtr hFont=font.ToHfont(); IntPtr old=SelectObject(hdc,hFont); int hresult=DrawThemeText(m_hTheme,hdc,part.Value,state.Value,text,text.Length,(int)format,(drawdisabled?1:0),ref rDraw); SelectObject(hdc,old); WinApi.DeleteObject(hFont); g.ReleaseHdc(hdc); } protected virtual void InternalDrawTextEx(Graphics g, string text, Font font, Rectangle layoutRect, ThemePart part, ThemeState state, ThemeTextFormat format, DTTOPTS options) { RECT rDraw=new RECT(layoutRect); IntPtr hdc=g.GetHdc(); IntPtr hFont=font.ToHfont(); IntPtr old=SelectObject(hdc,hFont); //int hresult=DrawThemeText(m_hTheme,hdc,part.Value,state.Value,text,text.Length,(int)format,(drawdisabled?1:0),ref rDraw); options.dwSize = Marshal.SizeOf(options); int hresult = DrawThemeTextEx(m_hTheme, hdc, part.Value, state.Value, text, text.Length, (int)format, ref rDraw, ref options); SelectObject(hdc,old); WinApi.DeleteObject(hFont); g.ReleaseHdc(hdc); } public virtual bool IsPartDefined(ThemePart part, ThemeState state) { return IsThemePartDefined(m_hTheme,part.Value,state.Value); } public void Dispose() { if(m_hTheme!=IntPtr.Zero) { CloseThemeData(m_hTheme); m_hTheme=IntPtr.Zero; } } public virtual System.Drawing.Size ThemeMinSize(Graphics g, ThemePart part, ThemeState state) { SIZE m=new SIZE(); IntPtr hdc=g.GetHdc(); try { int hresult = GetThemePartSize(m_hTheme, hdc, part.Value, state.Value, IntPtr.Zero, 0, ref m); } finally { g.ReleaseHdc(hdc); } return new System.Drawing.Size(m.Width,m.Height); } public virtual System.Drawing.Size ThemeTrueSize(Graphics g, ThemePart part, ThemeState state) { SIZE m=new SIZE(); IntPtr hdc=g.GetHdc(); try { int hresult = GetThemePartSize(m_hTheme, hdc, part.Value, state.Value, IntPtr.Zero, 1, ref m); } finally { g.ReleaseHdc(hdc); } return new System.Drawing.Size(m.Width,m.Height); } public virtual System.Drawing.Size ThemeDrawSize(Graphics g, ThemePart part, ThemeState state) { SIZE m=new SIZE(); IntPtr hdc=g.GetHdc(); try { int hresult = GetThemePartSize(m_hTheme, hdc, part.Value, state.Value, IntPtr.Zero, 2, ref m); } finally { g.ReleaseHdc(hdc); } return new System.Drawing.Size(m.Width,m.Height); } } public enum ThemeTextFormat:int { Top=0x00000000, Left=0x00000000, Center=0x00000001, Right=0x00000002, VCenter=0x00000004, Bottom=0x00000008, WordBreak=0x00000010, SingleLine=0x00000020, ExpandTabs=0x00000040, TabStop=0x00000080, NoClip=0x00000100, ExternalLeading=0x00000200, CalcRect=0x00000400, NoPrefix=0x00000800, Internal=0x00001000, EditControl=0x00002000, PathElliosis=0x00004000, EndEllipsis=0x00008000, ModifyString=0x00010000, RtlReading=0x00020000, WordEllipsis=0x00040000, NoFullWidthCharBreak=0x00080000, HidePrefix=0x00100000, PrefixOnly=0x00200000, } internal class ThemeButton:Themes { public ThemeButton(Control parent):base(parent) { } protected override string ThemeClass { get { return "Button"; } } public void DrawBackground(Graphics g, ThemeButtonParts part, ThemeButtonStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeButtonParts part, ThemeButtonStates state, ThemeTextFormat format, bool drawdisabled) { InternalDrawText(g,text,font,layoutRect,part,state,format,drawdisabled); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeButtonParts part, ThemeButtonStates state, ThemeTextFormat format) { InternalDrawText(g,text,font,layoutRect,part,state,format,false); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeButtonParts part, ThemeButtonStates state) { InternalDrawText(g,text,font,layoutRect,part,state,ThemeTextFormat.Left,false); } } internal class ThemeButtonParts:ThemePart { protected ThemeButtonParts(int themepartvalue):base(themepartvalue) { } public static ThemeButtonParts PushButton=new ThemeButtonParts(1); public static ThemeButtonParts RadioButton=new ThemeButtonParts(2); public static ThemeButtonParts CheckBox=new ThemeButtonParts(3); public static ThemeButtonParts GroupBox=new ThemeButtonParts(4); public static ThemeButtonParts UserButton=new ThemeButtonParts(5); } internal class ThemeButtonStates:ThemeState { protected ThemeButtonStates(int themestatevalue):base(themestatevalue) { } // Push Buttons public static ThemeButtonStates PushButtonNormal=new ThemeButtonStates(1); public static ThemeButtonStates PushButtonHot=new ThemeButtonStates(2); public static ThemeButtonStates PushButtonPressed=new ThemeButtonStates(3); public static ThemeButtonStates PushButtonDisabled=new ThemeButtonStates(4); public static ThemeButtonStates PushButtonDefaulted=new ThemeButtonStates(5); // Radio Buttons public static ThemeButtonStates RadioButtonUncheckedNormal=new ThemeButtonStates(1); public static ThemeButtonStates RadioButtonUncheckedHot=new ThemeButtonStates(2); public static ThemeButtonStates RadioButtonUncheckedPressed=new ThemeButtonStates(3); public static ThemeButtonStates RadioButtonUncheckedDisabled=new ThemeButtonStates(4); public static ThemeButtonStates RadioButtonCheckedNormal=new ThemeButtonStates(5); public static ThemeButtonStates RadioButtonCheckedHot=new ThemeButtonStates(6); public static ThemeButtonStates RadioButtonCheckedPressed=new ThemeButtonStates(7); public static ThemeButtonStates RadioButtonCheckedDisabled=new ThemeButtonStates(8); // Check Boxes public static ThemeButtonStates CheckBoxUncheckedNormal=new ThemeButtonStates(1); public static ThemeButtonStates CheckBoxUncheckedHot=new ThemeButtonStates(2); public static ThemeButtonStates CheckBoxUncheckedPressed=new ThemeButtonStates(3); public static ThemeButtonStates CheckBoxUncheckedDisabled=new ThemeButtonStates(4); public static ThemeButtonStates CheckBoxCheckedNormal=new ThemeButtonStates(5); public static ThemeButtonStates CheckBoxCheckedHot=new ThemeButtonStates(6); public static ThemeButtonStates CheckBoxCheckedPressed=new ThemeButtonStates(7); public static ThemeButtonStates CheckBoxCheckedDisabled=new ThemeButtonStates(8); public static ThemeButtonStates CheckBoxMixedNormal=new ThemeButtonStates(9); public static ThemeButtonStates CheckBoxMixedHot=new ThemeButtonStates(10); public static ThemeButtonStates CheckBoxMixedPressed=new ThemeButtonStates(11); public static ThemeButtonStates CheckBoxMixedDisabled=new ThemeButtonStates(12); // Group Box public static ThemeButtonStates GroupBoxNormal=new ThemeButtonStates(1); public static ThemeButtonStates GroupBoxDisabled=new ThemeButtonStates(2); } internal class ThemeToolbar:Themes { public ThemeToolbar(Control parent):base(parent) { } protected override string ThemeClass { get { return "Toolbar"; } } public void DrawBackground(Graphics g, ThemeToolbarParts part, ThemeToolbarStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeToolbarParts part, ThemeToolbarStates state, ThemeTextFormat format, bool drawdisabled) { InternalDrawText(g,text,font,layoutRect,part,state,format,drawdisabled); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeToolbarParts part, ThemeToolbarStates state, ThemeTextFormat format) { InternalDrawText(g,text,font,layoutRect,part,state,format,false); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeToolbarParts part, ThemeToolbarStates state) { InternalDrawText(g,text,font,layoutRect,part,state,ThemeTextFormat.Left,false); } } internal class ThemeToolbarParts:ThemePart { protected ThemeToolbarParts(int themepartvalue):base(themepartvalue) {} public static ThemeToolbarParts Button=new ThemeToolbarParts(1); public static ThemeToolbarParts DropDownButton=new ThemeToolbarParts(2); public static ThemeToolbarParts SplitButton=new ThemeToolbarParts(3); public static ThemeToolbarParts SplitButtonDropDown=new ThemeToolbarParts(4); public static ThemeToolbarParts Separator=new ThemeToolbarParts(5); public static ThemeToolbarParts SeparatorVert=new ThemeToolbarParts(6); } internal class ThemeToolbarStates:ThemeState { protected ThemeToolbarStates(int themestatevalue):base(themestatevalue) {} public static ThemeToolbarStates Normal=new ThemeToolbarStates(1); public static ThemeToolbarStates Hot=new ThemeToolbarStates(2); public static ThemeToolbarStates Pressed=new ThemeToolbarStates(3); public static ThemeToolbarStates Disabled=new ThemeToolbarStates(4); public static ThemeToolbarStates Checked=new ThemeToolbarStates(5); public static ThemeToolbarStates HotChecked=new ThemeToolbarStates(6); } internal class ThemeComboBox:Themes { public ThemeComboBox(Control parent):base(parent) { } protected override string ThemeClass { get { return "COMBOBOX"; } } public void DrawBackground(Graphics g, ThemeComboBoxParts part, ThemeComboBoxStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeComboBoxParts:ThemePart { protected ThemeComboBoxParts(int themepartvalue):base(themepartvalue) {} public static ThemeComboBoxParts DropDownButton=new ThemeComboBoxParts(1); } internal class ThemeComboBoxStates:ThemeState { protected ThemeComboBoxStates(int themestatevalue):base(themestatevalue) {} public static ThemeComboBoxStates Normal=new ThemeComboBoxStates(1); public static ThemeComboBoxStates Hot=new ThemeComboBoxStates(2); public static ThemeComboBoxStates Pressed=new ThemeComboBoxStates(3); public static ThemeComboBoxStates Disabled=new ThemeComboBoxStates(4); } internal class ThemeEdit:Themes { public ThemeEdit(Control parent):base(parent) { } protected override string ThemeClass { get { return "EDIT"; } } public void DrawBackground(Graphics g, ThemeEditParts part, ThemeEditStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeEditParts:ThemePart { protected ThemeEditParts(int themepartvalue):base(themepartvalue) {} public static ThemeEditParts EditText=new ThemeEditParts(1); public static ThemeEditParts Caret=new ThemeEditParts(2); } internal class ThemeEditStates:ThemeState { protected ThemeEditStates(int themestatevalue):base(themestatevalue) {} public static ThemeEditStates Normal=new ThemeEditStates(1); public static ThemeEditStates Hot=new ThemeEditStates(2); public static ThemeEditStates Selected=new ThemeEditStates(3); public static ThemeEditStates Disabled=new ThemeEditStates(4); public static ThemeEditStates Focused=new ThemeEditStates(5); public static ThemeEditStates ReadOnly=new ThemeEditStates(6); public static ThemeEditStates Assist=new ThemeEditStates(7); } internal class ThemeExplorerBar:Themes { public ThemeExplorerBar(Control parent):base(parent) { } protected override string ThemeClass { get { return "EXPLORERBAR"; } } public void DrawBackground(Graphics g, ThemeExplorerBarParts part, ThemeExplorerBarStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeExplorerBarParts part, ThemeExplorerBarStates state, ThemeTextFormat format, bool drawdisabled) { InternalDrawText(g,text,font,layoutRect,part,state,format,drawdisabled); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeExplorerBarParts part, ThemeExplorerBarStates state, ThemeTextFormat format) { InternalDrawText(g,text,font,layoutRect,part,state,format,false); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeExplorerBarParts part, ThemeExplorerBarStates state) { InternalDrawText(g,text,font,layoutRect,part,state,ThemeTextFormat.Left,false); } } internal class ThemeExplorerBarParts:ThemePart { protected ThemeExplorerBarParts(int themepartvalue):base(themepartvalue) {} public static ThemeExplorerBarParts HeaderBackground=new ThemeExplorerBarParts(1); public static ThemeExplorerBarParts HeaderClose=new ThemeExplorerBarParts(2); public static ThemeExplorerBarParts HeaderPin=new ThemeExplorerBarParts(3); public static ThemeExplorerBarParts IeBarMenu=new ThemeExplorerBarParts(4); public static ThemeExplorerBarParts NormalGroupBackground=new ThemeExplorerBarParts(5); public static ThemeExplorerBarParts NormalGroupCollapse=new ThemeExplorerBarParts(6); public static ThemeExplorerBarParts NormalGroupExpand=new ThemeExplorerBarParts(7); public static ThemeExplorerBarParts NormalGroupHead=new ThemeExplorerBarParts(8); public static ThemeExplorerBarParts SpecialGroupBackground=new ThemeExplorerBarParts(9); public static ThemeExplorerBarParts SpecialGroupCollapse=new ThemeExplorerBarParts(10); public static ThemeExplorerBarParts SpecialGroupExpand=new ThemeExplorerBarParts(11); public static ThemeExplorerBarParts SpecialGroupHead=new ThemeExplorerBarParts(12); } internal class ThemeExplorerBarStates:ThemeState { protected ThemeExplorerBarStates(int themestatevalue):base(themestatevalue) {} // Header Background public static ThemeExplorerBarStates HeaderBackgroundNormal=new ThemeExplorerBarStates(1); // Header Close public static ThemeExplorerBarStates HeaderCloseNormal=new ThemeExplorerBarStates(1); public static ThemeExplorerBarStates HeaderCloseHot=new ThemeExplorerBarStates(2); public static ThemeExplorerBarStates HeaderClosePressed=new ThemeExplorerBarStates(3); // Header Pin public static ThemeExplorerBarStates HeaderPinNormal=new ThemeExplorerBarStates(1); public static ThemeExplorerBarStates HeaderPinHot=new ThemeExplorerBarStates(2); public static ThemeExplorerBarStates HeaderPinPressed=new ThemeExplorerBarStates(3); public static ThemeExplorerBarStates HeaderPinSelectedNormal=new ThemeExplorerBarStates(4); public static ThemeExplorerBarStates HeaderPinSelectedHot=new ThemeExplorerBarStates(5); public static ThemeExplorerBarStates HeaderPinSelectedPressed=new ThemeExplorerBarStates(6); // IE Bar Menu public static ThemeExplorerBarStates IeBarMenuNormal=new ThemeExplorerBarStates(1); public static ThemeExplorerBarStates IeBarMenuHot=new ThemeExplorerBarStates(2); public static ThemeExplorerBarStates IeBarMenuPressed=new ThemeExplorerBarStates(3); // Normal Group Background public static ThemeExplorerBarStates NormalGroupBackgroundNormal=new ThemeExplorerBarStates(1); // Normal Group Collapse public static ThemeExplorerBarStates NormalGroupCollapseNormal=new ThemeExplorerBarStates(1); public static ThemeExplorerBarStates NormalGroupCollapseHot=new ThemeExplorerBarStates(2); public static ThemeExplorerBarStates NormalGroupCollapsePressed=new ThemeExplorerBarStates(3); // Normal Group Expand public static ThemeExplorerBarStates NormalGroupExpandNormal=new ThemeExplorerBarStates(1); public static ThemeExplorerBarStates NormalGroupExpandHot=new ThemeExplorerBarStates(2); public static ThemeExplorerBarStates NormalGroupExpandPressed=new ThemeExplorerBarStates(3); // Normal Group Head public static ThemeExplorerBarStates NormalGroupHeadNormal=new ThemeExplorerBarStates(1); // Special Group Background public static ThemeExplorerBarStates SpecialGroupBackgroundNormal=new ThemeExplorerBarStates(1); // Special Group Collapse public static ThemeExplorerBarStates SpecialGroupCollapseNormal=new ThemeExplorerBarStates(1); public static ThemeExplorerBarStates SpecialGroupCollapseHot=new ThemeExplorerBarStates(2); public static ThemeExplorerBarStates SpecialGroupCollapsePressed=new ThemeExplorerBarStates(3); // Special Group Expand public static ThemeExplorerBarStates SpecialGroupExpandNormal=new ThemeExplorerBarStates(1); public static ThemeExplorerBarStates SpecialGroupExpandHot=new ThemeExplorerBarStates(2); public static ThemeExplorerBarStates SpecialGroupExpandPressed=new ThemeExplorerBarStates(3); // Special Group Head public static ThemeExplorerBarStates SpecialGroupHeadNormal=new ThemeExplorerBarStates(1); } internal class ThemeHeader:Themes { public ThemeHeader(Control parent):base(parent) { } protected override string ThemeClass { get { return "HEADER"; } } public void DrawBackground(Graphics g, ThemeHeaderParts part, ThemeHeaderStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeHeaderParts part, ThemeHeaderStates state, ThemeTextFormat format, bool drawdisabled) { InternalDrawText(g,text,font,layoutRect,part,state,format,drawdisabled); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeHeaderParts part, ThemeHeaderStates state, ThemeTextFormat format) { InternalDrawText(g,text,font,layoutRect,part,state,format,false); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeHeaderParts part, ThemeHeaderStates state) { InternalDrawText(g,text,font,layoutRect,part,state,ThemeTextFormat.Left,false); } } internal class ThemeHeaderParts:ThemePart { protected ThemeHeaderParts(int themepartvalue):base(themepartvalue) {} public static ThemeHeaderParts HeaderItem=new ThemeHeaderParts(1); public static ThemeHeaderParts HeaderItemLeft=new ThemeHeaderParts(2); public static ThemeHeaderParts HeaderItemRight=new ThemeHeaderParts(3); public static ThemeHeaderParts HeaderSortArrow=new ThemeHeaderParts(4); } internal class ThemeHeaderStates:ThemeState { protected ThemeHeaderStates(int themestatevalue):base(themestatevalue) {} public static ThemeHeaderStates ItemNormal=new ThemeHeaderStates(1); public static ThemeHeaderStates ItemHot=new ThemeHeaderStates(2); public static ThemeHeaderStates ItemPressed=new ThemeHeaderStates(3); // Header Sort Arrow public static ThemeHeaderStates SortArrowSortedUp=new ThemeHeaderStates(1); public static ThemeHeaderStates SortArrowSortedDown=new ThemeHeaderStates(2); } internal class ThemeListView:Themes { public ThemeListView(Control parent):base(parent) { } protected override string ThemeClass { get { return "LISTVIEW"; } } public void DrawBackground(Graphics g, ThemeListViewParts part, ThemeListViewStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeListViewParts:ThemePart { protected ThemeListViewParts(int themepartvalue):base(themepartvalue) {} public static ThemeListViewParts ListItem=new ThemeListViewParts(1); public static ThemeListViewParts ListGroup=new ThemeListViewParts(2); public static ThemeListViewParts ListDetail=new ThemeListViewParts(3); public static ThemeListViewParts ListSortedDetail=new ThemeListViewParts(4); public static ThemeListViewParts EmptyText=new ThemeListViewParts(5); } internal class ThemeListViewStates:ThemeState { protected ThemeListViewStates(int themestatevalue):base(themestatevalue) {} public static ThemeListViewStates ListGroupNormal=new ThemeListViewStates(1); public static ThemeListViewStates ListDetailNormal=new ThemeListViewStates(1); public static ThemeListViewStates ListSortedDetailNormal=new ThemeListViewStates(1); public static ThemeListViewStates EmptyTextNormal=new ThemeListViewStates(1); public static ThemeListViewStates ListItemNormal=new ThemeListViewStates(1); public static ThemeListViewStates ListItemHot=new ThemeListViewStates(2); public static ThemeListViewStates ListItemSelected=new ThemeListViewStates(3); public static ThemeListViewStates ListItemDisabled=new ThemeListViewStates(4); public static ThemeListViewStates ListItemSelectedNotFocus=new ThemeListViewStates(5); } internal class ThemeMenu:Themes { public ThemeMenu(Control parent):base(parent) { } protected override string ThemeClass { get { return "MENU"; } } public void DrawBackground(Graphics g, ThemeMenuParts part, ThemeMenuStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeMenuParts:ThemePart { protected ThemeMenuParts(int themepartvalue):base(themepartvalue) {} public static ThemeMenuParts MenuItem=new ThemeMenuParts(1); public static ThemeMenuParts MenuDropDown=new ThemeMenuParts(2); public static ThemeMenuParts MenuBarItem=new ThemeMenuParts(3); public static ThemeMenuParts MenuBarDropDown=new ThemeMenuParts(4); public static ThemeMenuParts Chevron=new ThemeMenuParts(5); public static ThemeMenuParts Separator=new ThemeMenuParts(6); } internal class ThemeMenuStates:ThemeState { protected ThemeMenuStates(int themestatevalue):base(themestatevalue) {} public static ThemeMenuStates Normal=new ThemeMenuStates(1); public static ThemeMenuStates Selected=new ThemeMenuStates(2); public static ThemeMenuStates Demoted=new ThemeMenuStates(3); } internal class ThemeMenuBand:Themes { public ThemeMenuBand(Control parent):base(parent) { } protected override string ThemeClass { get { return "MENUBAND"; } } public void DrawBackground(Graphics g, ThemeMenuBandParts part, ThemeMenuBandStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeMenuBandParts:ThemePart { protected ThemeMenuBandParts(int themepartvalue):base(themepartvalue) {} public static ThemeMenuBandParts NewAppButton=new ThemeMenuBandParts(1); public static ThemeMenuBandParts Separator=new ThemeMenuBandParts(2); } internal class ThemeMenuBandStates:ThemeState { protected ThemeMenuBandStates(int themestatevalue):base(themestatevalue) {} public static ThemeMenuBandStates Normal=new ThemeMenuBandStates(1); public static ThemeMenuBandStates Hot=new ThemeMenuBandStates(2); public static ThemeMenuBandStates Pressed=new ThemeMenuBandStates(3); public static ThemeMenuBandStates Disabled=new ThemeMenuBandStates(4); public static ThemeMenuBandStates Checked=new ThemeMenuBandStates(5); public static ThemeMenuBandStates HotChecked=new ThemeMenuBandStates(6); } internal class ThemePage:Themes { public ThemePage(Control parent):base(parent) { } protected override string ThemeClass { get { return "PAGE"; } } public void DrawBackground(Graphics g, ThemePageParts part, ThemePageStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemePageParts:ThemePart { protected ThemePageParts(int themepartvalue):base(themepartvalue) {} public static ThemePageParts Up=new ThemePageParts(1); public static ThemePageParts Down=new ThemePageParts(2); public static ThemePageParts UpHorz=new ThemePageParts(3); public static ThemePageParts DownHorz=new ThemePageParts(4); } internal class ThemePageStates:ThemeState { protected ThemePageStates(int themestatevalue):base(themestatevalue) {} public static ThemePageStates Normal=new ThemePageStates(1); public static ThemePageStates Hot=new ThemePageStates(2); public static ThemePageStates Pressed=new ThemePageStates(3); public static ThemePageStates Disabled=new ThemePageStates(4); } internal class ThemeProgress:Themes { public ThemeProgress(Control parent):base(parent) { } protected override string ThemeClass { get { return "PROGRESS"; } } public void DrawBackground(Graphics g, ThemeProgressParts part, ThemeProgressStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeProgressParts:ThemePart { protected ThemeProgressParts(int themepartvalue):base(themepartvalue) {} public static ThemeProgressParts Bar=new ThemeProgressParts(1); public static ThemeProgressParts BarVert=new ThemeProgressParts(2); public static ThemeProgressParts Chunk=new ThemeProgressParts(3); public static ThemeProgressParts ChunkVert=new ThemeProgressParts(4); } internal class ThemeProgressStates:ThemeState { protected ThemeProgressStates(int themestatevalue):base(themestatevalue) {} public static ThemeProgressStates Normal=new ThemeProgressStates(1); } internal class ThemeRebar:Themes { public ThemeRebar(Control parent):base(parent) { } protected override string ThemeClass { get { return "REBAR"; } } public void DrawBackground(Graphics g, ThemeRebarParts part, ThemeRebarStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeRebarParts:ThemePart { protected ThemeRebarParts(int themepartvalue):base(themepartvalue) {} public static ThemeRebarParts Background=new ThemeRebarParts(0); public static ThemeRebarParts Gripper=new ThemeRebarParts(1); public static ThemeRebarParts GripperVert=new ThemeRebarParts(2); public static ThemeRebarParts Band=new ThemeRebarParts(3); public static ThemeRebarParts Chevron=new ThemeRebarParts(4); public static ThemeRebarParts ChevronVert=new ThemeRebarParts(5); } internal class ThemeRebarStates:ThemeState { protected ThemeRebarStates(int themestatevalue):base(themestatevalue) {} public static ThemeRebarStates Normal=new ThemeRebarStates(0); public static ThemeRebarStates ChevronNormal=new ThemeRebarStates(1); public static ThemeRebarStates ChevronHot=new ThemeRebarStates(2); public static ThemeRebarStates ChevronPressed=new ThemeRebarStates(3); } internal class ThemeScrollBar:Themes { public ThemeScrollBar(Control parent):base(parent) { } protected override string ThemeClass { get { return "SCROLLBAR"; } } public void DrawBackground(Graphics g, ThemeScrollBarParts part, ThemeScrollBarStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeScrollBarParts:ThemePart { protected ThemeScrollBarParts(int themepartvalue):base(themepartvalue) {} public static ThemeScrollBarParts ArrowBtn=new ThemeScrollBarParts(1); public static ThemeScrollBarParts ThumbBtnHorz=new ThemeScrollBarParts(2); public static ThemeScrollBarParts ThumbBtnVert=new ThemeScrollBarParts(3); public static ThemeScrollBarParts LowerTrackHorz=new ThemeScrollBarParts(4); public static ThemeScrollBarParts UpperTrackHorz=new ThemeScrollBarParts(5); public static ThemeScrollBarParts LowerTrackVert=new ThemeScrollBarParts(6); public static ThemeScrollBarParts UpperTrackVert=new ThemeScrollBarParts(7); public static ThemeScrollBarParts GripperHorz=new ThemeScrollBarParts(8); public static ThemeScrollBarParts GripperVert=new ThemeScrollBarParts(9); public static ThemeScrollBarParts SizeBox=new ThemeScrollBarParts(10); } internal class ThemeScrollBarStates:ThemeState { protected ThemeScrollBarStates(int themestatevalue):base(themestatevalue) {} public static ThemeScrollBarStates ArrowBtnUpNormal=new ThemeScrollBarStates(1); public static ThemeScrollBarStates ArrowBtnUpHot=new ThemeScrollBarStates(2); public static ThemeScrollBarStates ArrowBtnUpPressed=new ThemeScrollBarStates(3); public static ThemeScrollBarStates ArrowBtnUpDisabled=new ThemeScrollBarStates(4); public static ThemeScrollBarStates ArrowBtnDownNormal=new ThemeScrollBarStates(5); public static ThemeScrollBarStates ArrowBtnDownHot=new ThemeScrollBarStates(6); public static ThemeScrollBarStates ArrowBtnDownPressed=new ThemeScrollBarStates(7); public static ThemeScrollBarStates ArrowBtnDownDisabled=new ThemeScrollBarStates(8); public static ThemeScrollBarStates ArrowBtnLeftNormal=new ThemeScrollBarStates(9); public static ThemeScrollBarStates ArrowBtnLeftHot=new ThemeScrollBarStates(10); public static ThemeScrollBarStates ArrowBtnLeftPressed=new ThemeScrollBarStates(11); public static ThemeScrollBarStates ArrowBtnLeftDisabled=new ThemeScrollBarStates(12); public static ThemeScrollBarStates ArrowBtnRightNormal=new ThemeScrollBarStates(13); public static ThemeScrollBarStates ArrowBtnRightHot=new ThemeScrollBarStates(14); public static ThemeScrollBarStates ArrowBtnRightPressed=new ThemeScrollBarStates(15); public static ThemeScrollBarStates ArrowBtnRightDisabled=new ThemeScrollBarStates(16); public static ThemeScrollBarStates GripperHorzNormal=new ThemeScrollBarStates(0); public static ThemeScrollBarStates GripperVertNormal=new ThemeScrollBarStates(0); public static ThemeScrollBarStates TrackNormal=new ThemeScrollBarStates(1); public static ThemeScrollBarStates TrackHot=new ThemeScrollBarStates(2); public static ThemeScrollBarStates TrackPressed=new ThemeScrollBarStates(3); public static ThemeScrollBarStates TrackDisabled=new ThemeScrollBarStates(4); public static ThemeScrollBarStates ThumbNormal=new ThemeScrollBarStates(1); public static ThemeScrollBarStates ThumbHot=new ThemeScrollBarStates(2); public static ThemeScrollBarStates ThumbPressed=new ThemeScrollBarStates(3); public static ThemeScrollBarStates ThumbDisabled=new ThemeScrollBarStates(4); public static ThemeScrollBarStates SizeBoxRightAlign=new ThemeScrollBarStates(1); public static ThemeScrollBarStates SizeBoxLeftAlign=new ThemeScrollBarStates(2); } internal class ThemeSpin:Themes { public ThemeSpin(Control parent):base(parent) { } protected override string ThemeClass { get { return "SPIN"; } } public void DrawBackground(Graphics g, ThemeSpinParts part, ThemeSpinStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeSpinParts:ThemePart { protected ThemeSpinParts(int themepartvalue):base(themepartvalue) {} public static ThemeSpinParts Up=new ThemeSpinParts(1); public static ThemeSpinParts Down=new ThemeSpinParts(2); public static ThemeSpinParts UpHorz=new ThemeSpinParts(3); public static ThemeSpinParts DownHorz=new ThemeSpinParts(4); } internal class ThemeSpinStates:ThemeState { protected ThemeSpinStates(int themestatevalue):base(themestatevalue) {} public static ThemeSpinStates Normal=new ThemeSpinStates(1); public static ThemeSpinStates Hot=new ThemeSpinStates(2); public static ThemeSpinStates Pressed=new ThemeSpinStates(3); public static ThemeSpinStates Disabled=new ThemeSpinStates(4); } internal class ThemeStartPanel:Themes { public ThemeStartPanel(Control parent):base(parent) { } protected override string ThemeClass { get { return "STARTPANEL"; } } public void DrawBackground(Graphics g, ThemeStartPanelParts part, ThemeStartPanelStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeStartPanelParts:ThemePart { protected ThemeStartPanelParts(int themepartvalue):base(themepartvalue) {} public static ThemeStartPanelParts UserPane=new ThemeStartPanelParts(1); public static ThemeStartPanelParts MorePrograms=new ThemeStartPanelParts(2); public static ThemeStartPanelParts MoreProgramsArrow=new ThemeStartPanelParts(3); public static ThemeStartPanelParts ProgList=new ThemeStartPanelParts(4); public static ThemeStartPanelParts ProgListSeparator=new ThemeStartPanelParts(5); public static ThemeStartPanelParts PlacesList=new ThemeStartPanelParts(6); public static ThemeStartPanelParts PlacesListSeparator=new ThemeStartPanelParts(7); public static ThemeStartPanelParts LogOff=new ThemeStartPanelParts(8); public static ThemeStartPanelParts LogOffButtons=new ThemeStartPanelParts(9); public static ThemeStartPanelParts UserPicture=new ThemeStartPanelParts(10); public static ThemeStartPanelParts Preview=new ThemeStartPanelParts(11); } internal class ThemeStartPanelStates:ThemeState { protected ThemeStartPanelStates(int themestatevalue):base(themestatevalue) {} public static ThemeStartPanelStates UserPaneNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates MoreProgramsNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates MoreProgramsArrowNormal=new ThemeStartPanelStates(1); public static ThemeStartPanelStates MoreProgramsArrowHot=new ThemeStartPanelStates(2); public static ThemeStartPanelStates MoreProgramsArrowPressed=new ThemeStartPanelStates(3); public static ThemeStartPanelStates ProgListNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates ProgListSeparatorNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates PlacesListNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates PlacesListSeparatorNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates LogOffNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates LogOffButtonsNormal=new ThemeStartPanelStates(1); public static ThemeStartPanelStates LogOffButtonsHot=new ThemeStartPanelStates(2); public static ThemeStartPanelStates LogOffButtonsPressed=new ThemeStartPanelStates(3); public static ThemeStartPanelStates UserPictureNormal=new ThemeStartPanelStates(0); public static ThemeStartPanelStates PreviewNormal=new ThemeStartPanelStates(0); } internal class ThemeStatus:Themes { public ThemeStatus(Control parent):base(parent) { } protected override string ThemeClass { get { return "STATUS"; } } public void DrawBackground(Graphics g, ThemeStatusParts part, ThemeStatusStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeStatusParts:ThemePart { protected ThemeStatusParts(int themepartvalue):base(themepartvalue) {} public static ThemeStatusParts Pane=new ThemeStatusParts(1); public static ThemeStatusParts GripperPane=new ThemeStatusParts(2); public static ThemeStatusParts Gripper=new ThemeStatusParts(3); } internal class ThemeStatusStates:ThemeState { protected ThemeStatusStates(int themestatevalue):base(themestatevalue) {} public static ThemeStatusStates Normal=new ThemeStatusStates(0); } internal class ThemeTab:Themes { public ThemeTab(Control parent):base(parent) { } protected override string ThemeClass { get { return "TAB"; } } public void DrawBackground(Graphics g, ThemeTabParts part, ThemeTabStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeTabParts:ThemePart { protected ThemeTabParts(int themepartvalue):base(themepartvalue) {} public static ThemeTabParts TabItem=new ThemeTabParts(1); public static ThemeTabParts TabItemLeftEdge=new ThemeTabParts(2); public static ThemeTabParts TabItemRightEdge=new ThemeTabParts(3); public static ThemeTabParts TabItemBothEdge=new ThemeTabParts(4); public static ThemeTabParts TopTabItem=new ThemeTabParts(5); public static ThemeTabParts TopTabItemLeftEdge=new ThemeTabParts(6); public static ThemeTabParts TopTabItemRightEdge=new ThemeTabParts(7); public static ThemeTabParts TopTabItemBothEdge=new ThemeTabParts(8); public static ThemeTabParts Pane=new ThemeTabParts(9); public static ThemeTabParts Body=new ThemeTabParts(10); } internal class ThemeTabStates:ThemeState { protected ThemeTabStates(int themestatevalue):base(themestatevalue) {} public static ThemeTabStates BodyNormal=new ThemeTabStates(0); public static ThemeTabStates PaneNormal=new ThemeTabStates(0); public static ThemeTabStates Normal=new ThemeTabStates(1); public static ThemeTabStates Hot=new ThemeTabStates(2); public static ThemeTabStates Selected=new ThemeTabStates(3); public static ThemeTabStates Disabled=new ThemeTabStates(4); public static ThemeTabStates Focused=new ThemeTabStates(4); } internal class ThemeTaskBand:Themes { public ThemeTaskBand(Control parent):base(parent) { } protected override string ThemeClass { get { return "TASKBAND"; } } public void DrawBackground(Graphics g, ThemeTaskBandParts part, ThemeTaskBandStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeTaskBandParts:ThemePart { protected ThemeTaskBandParts(int themepartvalue):base(themepartvalue) {} public static ThemeTaskBandParts GroupCount=new ThemeTaskBandParts(1); public static ThemeTaskBandParts FlashButton=new ThemeTaskBandParts(2); public static ThemeTaskBandParts FlashButtonGroupMenu=new ThemeTaskBandParts(3); } internal class ThemeTaskBandStates:ThemeState { protected ThemeTaskBandStates(int themestatevalue):base(themestatevalue) {} public static ThemeTaskBandStates Normal=new ThemeTaskBandStates(0); } internal class ThemeTaskBar:Themes { public ThemeTaskBar(Control parent):base(parent) { } protected override string ThemeClass { get { return "TASKBAR"; } } public void DrawBackground(Graphics g, ThemeTaskBarParts part, ThemeTaskBarStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeTaskBarParts:ThemePart { protected ThemeTaskBarParts(int themepartvalue):base(themepartvalue) {} public static ThemeTaskBarParts BackgroundBottom=new ThemeTaskBarParts(1); public static ThemeTaskBarParts BackgroundRight=new ThemeTaskBarParts(2); public static ThemeTaskBarParts BackgroundTop=new ThemeTaskBarParts(3); public static ThemeTaskBarParts BackgroundLeft=new ThemeTaskBarParts(4); public static ThemeTaskBarParts SizingBarBottom=new ThemeTaskBarParts(5); public static ThemeTaskBarParts SizingBarRight=new ThemeTaskBarParts(6); public static ThemeTaskBarParts SizingBarTop=new ThemeTaskBarParts(7); public static ThemeTaskBarParts SizingBarLeft=new ThemeTaskBarParts(8); } internal class ThemeTaskBarStates:ThemeState { protected ThemeTaskBarStates(int themestatevalue):base(themestatevalue) {} public static ThemeTaskBarStates Normal=new ThemeTaskBarStates(0); } internal class ThemeTooltip:Themes { public ThemeTooltip(Control parent):base(parent) { } protected override string ThemeClass { get { return "TOOLTIP"; } } public void DrawBackground(Graphics g, ThemeTooltipParts part, ThemeTooltipStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeTooltipParts:ThemePart { protected ThemeTooltipParts(int themepartvalue):base(themepartvalue) {} public static ThemeTooltipParts Standard=new ThemeTooltipParts(1); public static ThemeTooltipParts StandardTitle=new ThemeTooltipParts(2); public static ThemeTooltipParts Balloon=new ThemeTooltipParts(3); public static ThemeTooltipParts BalloonTitle=new ThemeTooltipParts(4); public static ThemeTooltipParts Close=new ThemeTooltipParts(5); } internal class ThemeTooltipStates:ThemeState { protected ThemeTooltipStates(int themestatevalue):base(themestatevalue) {} public static ThemeTooltipStates StandardNormal=new ThemeTooltipStates(1); public static ThemeTooltipStates StandardLink=new ThemeTooltipStates(2); public static ThemeTooltipStates BalloonNormal=new ThemeTooltipStates(1); public static ThemeTooltipStates BalloonLink=new ThemeTooltipStates(2); public static ThemeTooltipStates CloseNormal=new ThemeTooltipStates(1); public static ThemeTooltipStates CloseHot=new ThemeTooltipStates(2); public static ThemeTooltipStates ClosePressed=new ThemeTooltipStates(3); } internal class ThemeTrackbar:Themes { public ThemeTrackbar(Control parent):base(parent) { } protected override string ThemeClass { get { return "TRACKBAR"; } } public void DrawBackground(Graphics g, ThemeTrackbarParts part, ThemeTrackbarStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeTrackbarParts:ThemePart { protected ThemeTrackbarParts(int themepartvalue):base(themepartvalue) {} public static ThemeTrackbarParts Track=new ThemeTrackbarParts(1); public static ThemeTrackbarParts TrackVert=new ThemeTrackbarParts(2); public static ThemeTrackbarParts Thumb=new ThemeTrackbarParts(3); public static ThemeTrackbarParts ThumbBottom=new ThemeTrackbarParts(4); public static ThemeTrackbarParts ThumbTop=new ThemeTrackbarParts(5); public static ThemeTrackbarParts ThumbVert=new ThemeTrackbarParts(6); public static ThemeTrackbarParts ThumbLeft=new ThemeTrackbarParts(7); public static ThemeTrackbarParts ThumbRight=new ThemeTrackbarParts(8); public static ThemeTrackbarParts Tics=new ThemeTrackbarParts(9); public static ThemeTrackbarParts TicsVert=new ThemeTrackbarParts(10); } internal class ThemeTrackbarStates:ThemeState { protected ThemeTrackbarStates(int themestatevalue):base(themestatevalue) {} public static ThemeTrackbarStates TrackNormal=new ThemeTrackbarStates(1); public static ThemeTrackbarStates TicsNormal=new ThemeTrackbarStates(1); public static ThemeTrackbarStates ThumbNormal=new ThemeTrackbarStates(1); public static ThemeTrackbarStates ThumbHot=new ThemeTrackbarStates(2); public static ThemeTrackbarStates ThumbPressed=new ThemeTrackbarStates(3); public static ThemeTrackbarStates ThumbFocused=new ThemeTrackbarStates(4); public static ThemeTrackbarStates ThumbDisabled=new ThemeTrackbarStates(5); } internal class ThemeTrayNotify:Themes { public ThemeTrayNotify(Control parent):base(parent) { } protected override string ThemeClass { get { return "TRAYNOTIFY"; } } public void DrawBackground(Graphics g, ThemeTrayNotifyParts part, ThemeTrayNotifyStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeTrayNotifyParts:ThemePart { protected ThemeTrayNotifyParts(int themepartvalue):base(themepartvalue) {} public static ThemeTrayNotifyParts Background=new ThemeTrayNotifyParts(1); public static ThemeTrayNotifyParts AnimBackground=new ThemeTrayNotifyParts(2); } internal class ThemeTrayNotifyStates:ThemeState { protected ThemeTrayNotifyStates(int themestatevalue):base(themestatevalue) {} public static ThemeTrayNotifyStates Normal=new ThemeTrayNotifyStates(0); } internal class ThemeTreeView:Themes { public ThemeTreeView(Control parent):base(parent) { } protected override string ThemeClass { get { return "TREEVIEW"; } } public void DrawBackground(Graphics g, ThemeTreeViewParts part, ThemeTreeViewStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } } internal class ThemeTreeViewParts:ThemePart { protected ThemeTreeViewParts(int themepartvalue):base(themepartvalue) {} public static ThemeTreeViewParts TreeItem=new ThemeTreeViewParts(1); public static ThemeTreeViewParts Glyph=new ThemeTreeViewParts(1); public static ThemeTreeViewParts Branch=new ThemeTreeViewParts(1); } internal class ThemeTreeViewStates:ThemeState { protected ThemeTreeViewStates(int themestatevalue):base(themestatevalue) {} public static ThemeTreeViewStates BranchNormal=new ThemeTreeViewStates(0); public static ThemeTreeViewStates GlyphClosed=new ThemeTreeViewStates(1); public static ThemeTreeViewStates GlyphOpen=new ThemeTreeViewStates(2); public static ThemeTreeViewStates TreeItemNormal=new ThemeTreeViewStates(1); public static ThemeTreeViewStates TreeItemHot=new ThemeTreeViewStates(2); public static ThemeTreeViewStates TreeItemSelected=new ThemeTreeViewStates(3); public static ThemeTreeViewStates TreeItemDisabled=new ThemeTreeViewStates(4); public static ThemeTreeViewStates TreeItemSelectedNotFocus=new ThemeTreeViewStates(5); } internal class ThemeWindow:Themes { public ThemeWindow(Control parent):base(parent) { } protected override string ThemeClass { get { return "WINDOW"; } } public void DrawBackground(Graphics g, ThemeWindowParts part, ThemeWindowStates state, Rectangle r) { InternalDrawBackground(g,part,state,r); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeWindowParts part, ThemeWindowStates state, ThemeTextFormat format, bool drawdisabled) { InternalDrawText(g,text,font,layoutRect,part,state,format,drawdisabled); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeWindowParts part, ThemeWindowStates state, ThemeTextFormat format) { InternalDrawText(g,text,font,layoutRect,part,state,format,false); } public void DrawText(Graphics g, string text, Font font, Rectangle layoutRect, ThemeWindowParts part, ThemeWindowStates state) { InternalDrawText(g,text,font,layoutRect,part,state,ThemeTextFormat.Left,false); } public void DrawTextEx(Graphics g, string text, Font font, Rectangle layoutRect, ThemePart part, ThemeState state, ThemeTextFormat format, DTTOPTS options) { InternalDrawTextEx(g, text, font, layoutRect, part, state, format, options); } public IntPtr GetThemeBackgroundRegion(Graphics g, ThemeWindowParts part, ThemeWindowStates state, Rectangle r) { return this.InternalGetThemeBackgroundRegion(g,part,state,r); } } internal class ThemeWindowParts:ThemePart { protected ThemeWindowParts(int themepartvalue):base(themepartvalue) {} public static ThemeWindowParts Root=new ThemeWindowParts(0); public static ThemeWindowParts Caption=new ThemeWindowParts(1); public static ThemeWindowParts SmallCaption=new ThemeWindowParts(2); public static ThemeWindowParts MinCaption=new ThemeWindowParts(3); public static ThemeWindowParts SmallMinCaption=new ThemeWindowParts(4); public static ThemeWindowParts MaxCaption=new ThemeWindowParts(5); public static ThemeWindowParts SmallMaxCaption=new ThemeWindowParts(6); public static ThemeWindowParts FrameLeft=new ThemeWindowParts(7); public static ThemeWindowParts FrameRight=new ThemeWindowParts(8); public static ThemeWindowParts FrameBottom=new ThemeWindowParts(9); public static ThemeWindowParts SmallFrameLeft=new ThemeWindowParts(10); public static ThemeWindowParts SmallFrameRight=new ThemeWindowParts(11); public static ThemeWindowParts SmallFrameBottom=new ThemeWindowParts(12); public static ThemeWindowParts SysButton=new ThemeWindowParts(13); public static ThemeWindowParts MdiSysButton=new ThemeWindowParts(14); public static ThemeWindowParts MdiMinButton=new ThemeWindowParts(16); public static ThemeWindowParts MaxButton=new ThemeWindowParts(17); public static ThemeWindowParts CloseButton=new ThemeWindowParts(18); public static ThemeWindowParts SmallCloseButton=new ThemeWindowParts(19); public static ThemeWindowParts MdiCloseButton=new ThemeWindowParts(20); public static ThemeWindowParts RestoreButton=new ThemeWindowParts(21); public static ThemeWindowParts MdiRestoreButton=new ThemeWindowParts(22); public static ThemeWindowParts HelpButton=new ThemeWindowParts(23); public static ThemeWindowParts MdiHelpButton=new ThemeWindowParts(24); public static ThemeWindowParts HorzScroll=new ThemeWindowParts(25); public static ThemeWindowParts HorzThumb=new ThemeWindowParts(26); public static ThemeWindowParts VertScroll=new ThemeWindowParts(27); public static ThemeWindowParts VertThumb=new ThemeWindowParts(28); public static ThemeWindowParts Dialog=new ThemeWindowParts(29); //---- hit-test templates --- public static ThemeWindowParts HtCaptionSizingTemplate=new ThemeWindowParts(30); public static ThemeWindowParts HtSmallCaptionSizingTemplate=new ThemeWindowParts(31); public static ThemeWindowParts HtFrameLeftSizingTemplate=new ThemeWindowParts(32); public static ThemeWindowParts HtSmallFrameLeftSizingTemplate=new ThemeWindowParts(33); public static ThemeWindowParts HtFrameRightSizingTemplate=new ThemeWindowParts(34); public static ThemeWindowParts HtSmallFrameRightSizingTemplate=new ThemeWindowParts(35); public static ThemeWindowParts HtFrameBottomSizingTemplate=new ThemeWindowParts(36); public static ThemeWindowParts HtSmallFrameBottomSizingTemplate=new ThemeWindowParts(37); } internal class ThemeWindowStates:ThemeState { protected ThemeWindowStates(int themestatevalue):base(themestatevalue) {} public static ThemeWindowStates Normal=new ThemeWindowStates(0); public static ThemeWindowStates CaptionActive=new ThemeWindowStates(1); public static ThemeWindowStates CaptionInactive=new ThemeWindowStates(2); public static ThemeWindowStates CaptionDisabled=new ThemeWindowStates(3); public static ThemeWindowStates FrameActive=new ThemeWindowStates(1); public static ThemeWindowStates FrameInactive=new ThemeWindowStates(2); public static ThemeWindowStates ButtonNormal=new ThemeWindowStates(1); public static ThemeWindowStates ButtonHot=new ThemeWindowStates(2); public static ThemeWindowStates ButtonPushed=new ThemeWindowStates(3); public static ThemeWindowStates ButtonDisabled=new ThemeWindowStates(4); public static ThemeWindowStates HorzScrollNormal=new ThemeWindowStates(1); public static ThemeWindowStates HorzScrollHot=new ThemeWindowStates(2); public static ThemeWindowStates HorzScrollPushed=new ThemeWindowStates(3); public static ThemeWindowStates HorzScrollDisabled=new ThemeWindowStates(4); public static ThemeWindowStates HorzThumbNormal=new ThemeWindowStates(1); public static ThemeWindowStates HorzThumbHot=new ThemeWindowStates(2); public static ThemeWindowStates HorzThumbPushed=new ThemeWindowStates(3); public static ThemeWindowStates HorzThumbDisabled=new ThemeWindowStates(4); public static ThemeWindowStates VertScrollNormal=new ThemeWindowStates(1); public static ThemeWindowStates VertScrollHot=new ThemeWindowStates(2); public static ThemeWindowStates VertScrollPushed=new ThemeWindowStates(3); public static ThemeWindowStates VertScrollDisabled=new ThemeWindowStates(4); public static ThemeWindowStates VertThumbNormal=new ThemeWindowStates(1); public static ThemeWindowStates VertThumbHot=new ThemeWindowStates(2); public static ThemeWindowStates VertThumbPushed=new ThemeWindowStates(3); public static ThemeWindowStates VertThumbDisabled=new ThemeWindowStates(4); } internal class ThemePart { public readonly int Value; public ThemePart(int themepartvalue) { this.Value=themepartvalue; } } internal abstract class ThemeState { public readonly int Value; public ThemeState(int themestatevalue) { this.Value=themestatevalue; } } }