2 // ProfessionalColorTable.cs
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 // Copyright (c) 2006 Novell, Inc.
26 // Jonathan Pobst (monkey@jpobst.com)
30 using System.Windows.Forms.VisualStyles;
32 namespace System.Windows.Forms
34 public class ProfessionalColorTable
36 #region Private Variables
37 private bool use_system_colors = false;
39 private Color button_checked_gradient_begin;
40 private Color button_checked_gradient_end;
41 private Color button_checked_gradient_middle;
42 private Color button_checked_highlight;
43 private Color button_checked_highlight_border;
44 private Color button_pressed_border;
45 private Color button_pressed_gradient_begin;
46 private Color button_pressed_gradient_end;
47 private Color button_pressed_gradient_middle;
48 private Color button_pressed_highlight;
49 private Color button_pressed_highlight_border;
50 private Color button_selected_border;
51 private Color button_selected_gradient_begin;
52 private Color button_selected_gradient_end;
53 private Color button_selected_gradient_middle;
54 private Color button_selected_highlight;
55 private Color button_selected_highlight_border;
56 private Color check_background;
57 private Color check_pressed_background;
58 private Color check_selected_background;
59 private Color grip_dark;
60 private Color grip_light;
61 private Color image_margin_gradient_begin;
62 private Color image_margin_gradient_end;
63 private Color image_margin_gradient_middle;
64 private Color image_margin_revealed_gradient_begin;
65 private Color image_margin_revealed_gradient_end;
66 private Color image_margin_revealed_gradient_middle;
67 private Color menu_border;
68 private Color menu_item_border;
69 private Color menu_item_pressed_gradient_begin;
70 private Color menu_item_pressed_gradient_end;
71 private Color menu_item_pressed_gradient_middle;
72 private Color menu_item_selected;
73 private Color menu_item_selected_gradient_begin;
74 private Color menu_item_selected_gradient_end;
75 private Color menu_strip_gradient_begin;
76 private Color menu_strip_gradient_end;
77 private Color overflow_button_gradient_begin;
78 private Color overflow_button_gradient_end;
79 private Color overflow_button_gradient_middle;
80 private Color rafting_container_gradient_begin;
81 private Color rafting_container_gradient_end;
82 private Color separator_dark;
83 private Color separator_light;
84 private Color status_strip_gradient_begin;
85 private Color status_strip_gradient_end;
86 private Color tool_strip_border;
87 private Color tool_strip_content_panel_gradient_begin;
88 private Color tool_strip_content_panel_gradient_end;
89 private Color tool_strip_drop_down_background;
90 private Color tool_strip_gradient_begin;
91 private Color tool_strip_gradient_end;
92 private Color tool_strip_gradient_middle;
93 private Color tool_strip_panel_gradient_begin;
94 private Color tool_strip_panel_gradient_end;
97 #region Public Constructor
98 public ProfessionalColorTable ()
104 #region Public Properties
105 public virtual Color ButtonCheckedGradientBegin { get { return this.button_checked_gradient_begin; } }
106 public virtual Color ButtonCheckedGradientEnd { get { return this.button_checked_gradient_end; } }
107 public virtual Color ButtonCheckedGradientMiddle { get { return this.button_checked_gradient_middle; } }
108 public virtual Color ButtonCheckedHighlight { get { return this.button_checked_highlight; } }
109 public virtual Color ButtonCheckedHighlightBorder { get { return this.button_checked_highlight_border; } }
110 public virtual Color ButtonPressedBorder { get { return this.button_pressed_border; } }
111 public virtual Color ButtonPressedGradientBegin { get { return this.button_pressed_gradient_begin; } }
112 public virtual Color ButtonPressedGradientEnd { get { return this.button_pressed_gradient_end; } }
113 public virtual Color ButtonPressedGradientMiddle { get { return this.button_pressed_gradient_middle; } }
114 public virtual Color ButtonPressedHighlight { get { return this.button_pressed_highlight; } }
115 public virtual Color ButtonPressedHighlightBorder { get { return this.button_pressed_highlight_border; } }
116 public virtual Color ButtonSelectedBorder { get { return this.button_selected_border; } }
117 public virtual Color ButtonSelectedGradientBegin { get { return this.button_selected_gradient_begin; } }
118 public virtual Color ButtonSelectedGradientEnd { get { return this.button_selected_gradient_end; } }
119 public virtual Color ButtonSelectedGradientMiddle { get { return this.button_selected_gradient_middle; } }
120 public virtual Color ButtonSelectedHighlight { get { return this.button_selected_highlight; } }
121 public virtual Color ButtonSelectedHighlightBorder { get { return this.button_selected_highlight_border; } }
122 public virtual Color CheckBackground { get { return this.check_background; } }
123 public virtual Color CheckPressedBackground { get { return this.check_pressed_background; } }
124 public virtual Color CheckSelectedBackground { get { return this.check_selected_background; } }
125 public virtual Color GripDark { get { return this.grip_dark; } }
126 public virtual Color GripLight { get { return this.grip_light; } }
127 public virtual Color ImageMarginGradientBegin { get { return this.image_margin_gradient_begin; } }
128 public virtual Color ImageMarginGradientEnd { get { return this.image_margin_gradient_end; } }
129 public virtual Color ImageMarginGradientMiddle { get { return this.image_margin_gradient_middle; } }
130 public virtual Color ImageMarginRevealedGradientBegin { get { return this.image_margin_revealed_gradient_begin; } }
131 public virtual Color ImageMarginRevealedGradientEnd { get { return this.image_margin_revealed_gradient_end; } }
132 public virtual Color ImageMarginRevealedGradientMiddle { get { return this.image_margin_revealed_gradient_middle; } }
133 public virtual Color MenuBorder { get { return this.menu_border; } }
134 public virtual Color MenuItemBorder { get { return this.menu_item_border; } }
135 public virtual Color MenuItemPressedGradientBegin { get { return this.menu_item_pressed_gradient_begin; } }
136 public virtual Color MenuItemPressedGradientEnd { get { return this.menu_item_pressed_gradient_end; } }
137 public virtual Color MenuItemPressedGradientMiddle { get { return this.menu_item_pressed_gradient_middle; } }
138 public virtual Color MenuItemSelected { get { return this.menu_item_selected; } }
139 public virtual Color MenuItemSelectedGradientBegin { get { return this.menu_item_selected_gradient_begin; } }
140 public virtual Color MenuItemSelectedGradientEnd { get { return this.menu_item_selected_gradient_end; } }
141 public virtual Color MenuStripGradientBegin { get { return this.menu_strip_gradient_begin; } }
142 public virtual Color MenuStripGradientEnd { get { return this.menu_strip_gradient_end; } }
143 public virtual Color OverflowButtonGradientBegin { get { return this.overflow_button_gradient_begin; } }
144 public virtual Color OverflowButtonGradientEnd { get { return this.overflow_button_gradient_end; } }
145 public virtual Color OverflowButtonGradientMiddle { get { return this.overflow_button_gradient_middle; } }
146 public virtual Color RaftingContainerGradientBegin { get { return this.rafting_container_gradient_begin; } }
147 public virtual Color RaftingContainerGradientEnd { get { return this.rafting_container_gradient_end; } }
148 public virtual Color SeparatorDark { get { return this.separator_dark; } }
149 public virtual Color SeparatorLight { get { return this.separator_light; } }
150 public virtual Color StatusStripGradientBegin { get { return this.status_strip_gradient_begin; } }
151 public virtual Color StatusStripGradientEnd { get { return this.status_strip_gradient_end; } }
152 public virtual Color ToolStripBorder { get { return this.tool_strip_border; } }
153 public virtual Color ToolStripContentPanelGradientBegin { get { return this.tool_strip_content_panel_gradient_begin; } }
154 public virtual Color ToolStripContentPanelGradientEnd { get { return this.tool_strip_content_panel_gradient_end; } }
155 public virtual Color ToolStripDropDownBackground { get { return this.tool_strip_drop_down_background; } }
156 public virtual Color ToolStripGradientBegin { get { return this.tool_strip_gradient_begin; } }
157 public virtual Color ToolStripGradientEnd { get { return this.tool_strip_gradient_end; } }
158 public virtual Color ToolStripGradientMiddle { get { return this.tool_strip_gradient_middle; } }
159 public virtual Color ToolStripPanelGradientBegin { get { return this.tool_strip_panel_gradient_begin; } }
160 public virtual Color ToolStripPanelGradientEnd { get { return this.tool_strip_panel_gradient_end; } }
161 public bool UseSystemColors {
162 get { return use_system_colors; }
164 if (value != use_system_colors) {
165 use_system_colors = value; CalculateColors ();
171 #region Private Methods
172 private void CalculateColors ()
174 switch (GetCurrentStyle ()) {
175 case ColorSchemes.Classic:
176 button_checked_gradient_begin = Color.Empty;
177 button_checked_gradient_end = Color.Empty;
178 button_checked_gradient_middle = Color.Empty;
179 button_checked_highlight = Color.FromArgb (184, 191, 211);
180 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
182 button_pressed_border = Color.FromKnownColor (KnownColor.Highlight);
183 button_pressed_gradient_begin = Color.FromArgb (133, 146, 181);
184 button_pressed_gradient_end = Color.FromArgb (133, 146, 181);
185 button_pressed_gradient_middle = Color.FromArgb (133, 146, 181);
186 button_pressed_highlight = Color.FromArgb (131, 144, 179);
187 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
189 button_selected_border = Color.FromKnownColor (KnownColor.Highlight);
190 button_selected_gradient_begin = Color.FromArgb (182, 189, 210);
191 button_selected_gradient_end = Color.FromArgb (182, 189, 210);
192 button_selected_gradient_middle = Color.FromArgb (182, 189, 210);
193 button_selected_highlight = Color.FromArgb (184, 191, 211);
194 button_selected_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
196 check_background = Color.FromKnownColor (KnownColor.Highlight);
197 check_pressed_background = Color.FromArgb (133, 146, 181);
198 check_selected_background = Color.FromArgb (133, 146, 181);
200 grip_dark = Color.FromArgb (160, 160, 160);
201 grip_light = SystemColors.Window;
203 image_margin_gradient_begin = Color.FromArgb (245, 244, 242);
204 image_margin_gradient_end = SystemColors.Control;
205 image_margin_gradient_middle = Color.FromArgb (234, 232, 228);
206 image_margin_revealed_gradient_begin = Color.FromArgb (238, 236, 233);
207 image_margin_revealed_gradient_end = Color.FromArgb (216, 213, 206);
208 image_margin_revealed_gradient_middle = Color.FromArgb (225, 222, 217);
210 menu_border = Color.FromArgb (102, 102, 102);
211 menu_item_border = SystemColors.Highlight;
213 menu_item_pressed_gradient_begin = Color.FromArgb (245, 244, 242);
214 menu_item_pressed_gradient_end = Color.FromArgb (234, 232, 228);
215 menu_item_pressed_gradient_middle = Color.FromArgb (225, 222, 217);
216 menu_item_selected = SystemColors.Window;
217 menu_item_selected_gradient_begin = Color.FromArgb (182, 189, 210);
218 menu_item_selected_gradient_end = Color.FromArgb (182, 189, 210);
220 menu_strip_gradient_begin = SystemColors.ButtonFace;
221 menu_strip_gradient_end = Color.FromArgb (246, 245, 244);
223 overflow_button_gradient_begin = Color.FromArgb (225, 222, 217);
224 overflow_button_gradient_end = SystemColors.ButtonShadow;
225 overflow_button_gradient_middle = Color.FromArgb (216, 213, 206);
227 rafting_container_gradient_begin = SystemColors.ButtonFace;
228 rafting_container_gradient_end = Color.FromArgb (246, 245, 244);
230 separator_dark = Color.FromArgb (166, 166, 166);
231 separator_light = SystemColors.ButtonHighlight;
233 status_strip_gradient_begin = SystemColors.ButtonFace;
234 status_strip_gradient_end = Color.FromArgb (246, 245, 244);
236 tool_strip_border = Color.FromArgb (219, 216, 209);
237 tool_strip_content_panel_gradient_begin = SystemColors.ButtonFace;
238 tool_strip_content_panel_gradient_end = Color.FromArgb (246, 245, 244);
239 tool_strip_drop_down_background = SystemColors.Window;
241 tool_strip_gradient_begin = Color.FromArgb (245, 244, 242);
242 tool_strip_gradient_end = SystemColors.ButtonFace;
243 tool_strip_gradient_middle = Color.FromArgb (234, 232, 228);
245 tool_strip_panel_gradient_begin = SystemColors.ButtonFace;
246 tool_strip_panel_gradient_end = Color.FromArgb (246, 245, 244);
248 case ColorSchemes.NormalColor:
249 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (255, 223, 154);
250 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (255, 166, 76);
251 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (255, 195, 116);
252 button_checked_highlight = Color.FromArgb (195, 211, 237);
253 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
254 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (0, 0, 128);
255 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (254, 128, 62);
256 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (255, 223, 154);
257 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (255, 177, 109);
258 button_pressed_highlight = use_system_colors ? Color.FromArgb (150, 179, 225) : Color.FromArgb (150, 179, 225);
259 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
260 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (0, 0, 128);
261 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 255, 222);
262 button_selected_gradient_end = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 203, 136);
263 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 225, 172);
264 button_selected_highlight = use_system_colors ? Color.FromArgb (195, 211, 237) : Color.FromArgb (195, 211, 237);
265 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (0, 0, 128);
267 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (255, 192, 111);
268 check_pressed_background = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (254, 128, 62);
269 check_selected_background = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (254, 128, 62);
271 grip_dark = use_system_colors ? Color.FromArgb (193, 190, 179) : Color.FromArgb (39, 65, 118);
272 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
274 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (227, 239, 255);
275 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (123, 164, 224);
276 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (203, 225, 252);
277 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (247, 246, 239) : Color.FromArgb (203, 221, 246);
278 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (114, 155, 215);
279 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (161, 197, 249);
281 menu_border = use_system_colors ? Color.FromArgb (138, 134, 122) : Color.FromArgb (0, 45, 150);
282 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (0, 0, 128);
284 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (227, 239, 255);
285 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (123, 164, 224);
286 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (161, 197, 249);
287 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 238, 194);
288 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 255, 222);
289 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 203, 136);
291 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
292 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
294 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (127, 177, 250);
295 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (0, 53, 145);
296 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (82, 127, 208);
298 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
299 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
301 separator_dark = use_system_colors ? Color.FromArgb (197, 194, 184) : Color.FromArgb (106, 140, 203);
302 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (241, 249, 255);
304 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
305 status_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
307 tool_strip_border = use_system_colors ? Color.FromArgb (239, 237, 222) : Color.FromArgb (59, 97, 156);
308 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
309 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
310 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (252, 252, 249) : Color.FromArgb (246, 246, 246);
312 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (227, 239, 255);
313 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (123, 164, 224);
314 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (203, 225, 252);
316 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
317 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
319 case ColorSchemes.HomeStead:
320 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (255, 223, 154);
321 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (255, 166, 76);
322 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (255, 195, 116);
323 button_checked_highlight = Color.FromArgb (223, 227, 213);
324 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
326 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (63, 93, 56);
327 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (254, 128, 62);
328 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (255, 223, 154);
329 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (255, 177, 109);
330 button_pressed_highlight = use_system_colors ? Color.FromArgb (200, 206, 182) : Color.FromArgb (200, 206, 182);
331 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
333 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (63, 93, 56);
334 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 255, 222);
335 button_selected_gradient_end = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 203, 136);
336 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 225, 172);
337 button_selected_highlight = use_system_colors ? Color.FromArgb (223, 227, 213) : Color.FromArgb (223, 227, 213);
338 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (63, 93, 56);
340 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (255, 192, 111);
341 check_pressed_background = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (254, 128, 62);
342 check_selected_background = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (254, 128, 62);
344 grip_dark = use_system_colors ? Color.FromArgb (193, 190, 179) : Color.FromArgb (81, 94, 51);
345 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
347 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (255, 255, 237);
348 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (181, 196, 143);
349 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (206, 220, 167);
350 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (247, 246, 239) : Color.FromArgb (230, 230, 209);
351 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (160, 177, 116);
352 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (186, 201, 143);
354 menu_border = use_system_colors ? Color.FromArgb (138, 134, 122) : Color.FromArgb (117, 141, 94);
355 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (63, 93, 56);
357 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (237, 240, 214);
358 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (181, 196, 143);
359 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (186, 201, 143);
360 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 238, 194);
361 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 255, 222);
362 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 203, 136);
364 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
365 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
367 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (186, 204, 150);
368 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (96, 119, 107);
369 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (141, 160, 107);
371 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
372 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
374 separator_dark = use_system_colors ? Color.FromArgb (197, 194, 184) : Color.FromArgb (96, 128, 88);
375 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (244, 247, 222);
377 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
378 status_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
380 tool_strip_border = use_system_colors ? Color.FromArgb (239, 237, 222) : Color.FromArgb (96, 128, 88);
381 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
382 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
383 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (252, 252, 249) : Color.FromArgb (244, 244, 238);
385 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (255, 255, 237);
386 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (181, 196, 143);
387 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (206, 220, 167);
389 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
390 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
392 case ColorSchemes.Metallic:
393 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (255, 223, 154);
394 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (255, 166, 76);
395 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (255, 195, 116);
396 button_checked_highlight = Color.FromArgb (231, 232, 235);
397 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
399 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (75, 75, 111);
400 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (254, 128, 62);
401 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (255, 223, 154);
402 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (255, 177, 109);
403 button_pressed_highlight = use_system_colors ? Color.FromArgb (215, 216, 222) : Color.FromArgb (215, 216, 222);
404 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
406 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (75, 75, 111);
407 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 255, 222);
408 button_selected_gradient_end = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 203, 136);
409 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 225, 172);
410 button_selected_highlight = use_system_colors ? Color.FromArgb (231, 232, 235) : Color.FromArgb (231, 232, 235);
411 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (75, 75, 111);
413 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (255, 192, 111);
414 check_pressed_background = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (254, 128, 62);
415 check_selected_background = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (254, 128, 62);
417 grip_dark = use_system_colors ? Color.FromArgb (182, 182, 185) : Color.FromArgb (84, 84, 117);
418 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
420 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (248, 248, 249) : Color.FromArgb (249, 249, 255);
421 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (147, 145, 176);
422 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (240, 239, 241) : Color.FromArgb (225, 226, 236);
423 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (243, 242, 244) : Color.FromArgb (215, 215, 226);
424 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (227, 226, 230) : Color.FromArgb (118, 116, 151);
425 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (233, 233, 235) : Color.FromArgb (184, 185, 202);
427 menu_border = use_system_colors ? Color.FromArgb (126, 126, 129) : Color.FromArgb (124, 124, 148);
428 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (75, 75, 111);
430 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (248, 248, 249) : Color.FromArgb (232, 233, 242);
431 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (240, 239, 241) : Color.FromArgb (172, 170, 194);
432 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (233, 233, 235) : Color.FromArgb (184, 185, 202);
433 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 238, 194);
434 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 255, 222);
435 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 203, 136);
437 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
438 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
440 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (233, 233, 235) : Color.FromArgb (186, 185, 206);
441 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (118, 116, 146);
442 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (227, 226, 230) : Color.FromArgb (156, 155, 180);
444 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
445 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
447 separator_dark = use_system_colors ? Color.FromArgb (186, 186, 189) : Color.FromArgb (110, 109, 143);
448 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (255, 255, 255);
450 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
451 status_strip_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
453 tool_strip_border = use_system_colors ? Color.FromArgb (229, 228, 232) : Color.FromArgb (124, 124, 148);
454 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
455 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
456 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (253, 250, 255);
458 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (248, 248, 249) : Color.FromArgb (249, 249, 255);
459 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (147, 145, 176);
460 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (240, 239, 241) : Color.FromArgb (225, 226, 236);
462 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
463 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
465 case ColorSchemes.MediaCenter:
466 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (226, 229, 238);
467 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (226, 229, 238);
468 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (226, 229, 238);
469 button_checked_highlight = Color.FromArgb (196, 208, 229);
470 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
472 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
473 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (153, 175, 212);
474 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (153, 175, 212);
475 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (153, 175, 212);
476 button_pressed_highlight = use_system_colors ? Color.FromArgb (152, 173, 210) : Color.FromArgb (152, 173, 210);
477 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
479 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
480 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
481 button_selected_gradient_end = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
482 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
483 button_selected_highlight = use_system_colors ? Color.FromArgb (196, 208, 229) : Color.FromArgb (196, 208, 229);
484 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
486 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (226, 229, 238);
487 check_pressed_background = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (51, 94, 168);
488 check_selected_background = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (51, 94, 168);
490 grip_dark = use_system_colors ? Color.FromArgb (189, 188, 191) : Color.FromArgb (189, 188, 191);
491 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
493 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (250, 250, 251) : Color.FromArgb (252, 252, 252);
494 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (235, 233, 237);
495 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (245, 244, 246) : Color.FromArgb (245, 244, 246);
496 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (247, 246, 248) : Color.FromArgb (247, 246, 248);
497 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (237, 235, 239) : Color.FromArgb (228, 226, 230);
498 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (241, 240, 242) : Color.FromArgb (241, 240, 242);
500 menu_border = use_system_colors ? Color.FromArgb (134, 133, 136) : Color.FromArgb (134, 133, 136);
501 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (51, 94, 168);
503 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (250, 250, 251) : Color.FromArgb (252, 252, 252);
504 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (245, 244, 246) : Color.FromArgb (245, 244, 246);
505 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (241, 240, 242) : Color.FromArgb (241, 240, 242);
506 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (194, 207, 229);
507 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
508 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
510 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
511 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
513 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (241, 240, 242) : Color.FromArgb (242, 242, 242);
514 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (167, 166, 170);
515 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (237, 235, 239) : Color.FromArgb (224, 224, 225);
517 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
518 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
520 separator_dark = use_system_colors ? Color.FromArgb (193, 193, 196) : Color.FromArgb (193, 193, 196);
521 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (255, 255, 255);
523 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
524 status_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
526 tool_strip_border = use_system_colors ? Color.FromArgb (238, 237, 240) : Color.FromArgb (238, 237, 240);
527 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
528 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
529 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (252, 252, 252) : Color.FromArgb (252, 252, 252);
531 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (250, 250, 251) : Color.FromArgb (252, 252, 252);
532 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
533 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (245, 244, 246) : Color.FromArgb (245, 244, 246);
535 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
536 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
538 case ColorSchemes.Aero:
539 button_checked_gradient_begin = Color.Empty;
540 button_checked_gradient_end = Color.Empty;
541 button_checked_gradient_middle = Color.Empty;
542 button_checked_highlight = Color.FromArgb (196, 225, 255);
543 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
545 button_pressed_border = Color.FromKnownColor (KnownColor.Highlight);
546 button_pressed_gradient_begin = Color.FromArgb (153, 204, 255);
547 button_pressed_gradient_end = Color.FromArgb (153, 204, 255);
548 button_pressed_gradient_middle = Color.FromArgb (153, 204, 255);
549 button_pressed_highlight = Color.FromArgb (152, 203, 255);
550 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
552 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
553 button_selected_gradient_begin = Color.FromArgb (194, 224, 255);
554 button_selected_gradient_end = Color.FromArgb (194, 224, 255);
555 button_selected_gradient_middle = Color.FromArgb (194, 224, 255);
556 button_selected_highlight = Color.FromArgb (196, 225, 255);
557 button_selected_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
559 check_background = Color.FromKnownColor (KnownColor.Highlight);
560 check_pressed_background = Color.FromArgb (153, 204, 255);
561 check_selected_background = Color.FromArgb (153, 204, 255);
563 grip_dark = Color.FromArgb (184, 184, 184);
564 grip_light = SystemColors.Window;
566 image_margin_gradient_begin = Color.FromArgb (252, 252, 252);
567 image_margin_gradient_end = SystemColors.Control;
568 image_margin_gradient_middle = Color.FromArgb (250, 250, 250);
569 image_margin_revealed_gradient_begin = Color.FromArgb (251, 251, 251);
570 image_margin_revealed_gradient_end = Color.FromArgb (245, 245, 245);
571 image_margin_revealed_gradient_middle = Color.FromArgb (247, 247, 247);
573 menu_border = Color.FromArgb (128, 128, 128);
574 menu_item_border = SystemColors.Highlight;
576 menu_item_pressed_gradient_begin = Color.FromArgb (252, 252, 252);
577 menu_item_pressed_gradient_end = Color.FromArgb (250, 250, 250);
578 menu_item_pressed_gradient_middle = Color.FromArgb (247, 247, 247);
579 menu_item_selected = SystemColors.Window;
580 menu_item_selected_gradient_begin = Color.FromArgb (194, 224, 255);
581 menu_item_selected_gradient_end = Color.FromArgb (194, 224, 255);
583 menu_strip_gradient_begin = SystemColors.ButtonFace;
584 menu_strip_gradient_end = Color.FromArgb (253, 253, 253);
586 overflow_button_gradient_begin = Color.FromArgb (247, 247, 247);
587 overflow_button_gradient_end = SystemColors.ButtonShadow;
588 overflow_button_gradient_middle = Color.FromArgb (245, 245, 245);
590 rafting_container_gradient_begin = SystemColors.ButtonFace;
591 rafting_container_gradient_end = Color.FromArgb (253, 253, 253);
593 separator_dark = Color.FromArgb (189, 189, 189);
594 separator_light = SystemColors.ButtonHighlight;
596 status_strip_gradient_begin = SystemColors.ButtonFace;
597 status_strip_gradient_end = Color.FromArgb (253, 253, 253);
599 tool_strip_border = Color.FromArgb (246, 246, 246);
600 tool_strip_content_panel_gradient_begin = SystemColors.ButtonFace;
601 tool_strip_content_panel_gradient_end = Color.FromArgb (253, 253, 253);
602 tool_strip_drop_down_background = Color.FromArgb (253, 253, 253);
604 tool_strip_gradient_begin = Color.FromArgb (252, 252, 252);
605 tool_strip_gradient_end = SystemColors.ButtonFace;
606 tool_strip_gradient_middle = Color.FromArgb (250, 250, 250);
608 tool_strip_panel_gradient_begin = SystemColors.ButtonFace;
609 tool_strip_panel_gradient_end = Color.FromArgb (253, 253, 253);
614 private ColorSchemes GetCurrentStyle ()
616 if (!VisualStyleInformation.IsEnabledByUser || string.IsNullOrEmpty (VisualStylesEngine.Instance.VisualStyleInformationFileName))
619 return ColorSchemes.Classic;
621 switch (System.IO.Path.GetFileNameWithoutExtension (VisualStylesEngine.Instance.VisualStyleInformationFileName).ToLowerInvariant ()) {
623 return ColorSchemes.Aero;
625 return ColorSchemes.MediaCenter;
627 switch (VisualStyleInformation.ColorScheme) {
629 return ColorSchemes.NormalColor;
631 return ColorSchemes.HomeStead;
633 return ColorSchemes.Metallic;
635 return ColorSchemes.Classic;
642 #region Private Enums
643 private enum ColorSchemes
645 Classic, // Windows Classic (No theme)
646 NormalColor, // Luna Blue
647 HomeStead, // Luna Olive
648 Metallic, // Luna Silver
649 MediaCenter, // Media Center (Energy Blue)
650 Aero // Windows Vista