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)
31 using System.Windows.Forms.VisualStyles;
33 namespace System.Windows.Forms
35 public class ProfessionalColorTable
37 #region Private Variables
38 private bool use_system_colors = false;
40 private Color button_checked_gradient_begin;
41 private Color button_checked_gradient_end;
42 private Color button_checked_gradient_middle;
43 private Color button_checked_highlight;
44 private Color button_checked_highlight_border;
45 private Color button_pressed_border;
46 private Color button_pressed_gradient_begin;
47 private Color button_pressed_gradient_end;
48 private Color button_pressed_gradient_middle;
49 private Color button_pressed_highlight;
50 private Color button_pressed_highlight_border;
51 private Color button_selected_border;
52 private Color button_selected_gradient_begin;
53 private Color button_selected_gradient_end;
54 private Color button_selected_gradient_middle;
55 private Color button_selected_highlight;
56 private Color button_selected_highlight_border;
57 private Color check_background;
58 private Color check_pressed_background;
59 private Color check_selected_background;
60 private Color grip_dark;
61 private Color grip_light;
62 private Color image_margin_gradient_begin;
63 private Color image_margin_gradient_end;
64 private Color image_margin_gradient_middle;
65 private Color image_margin_revealed_gradient_begin;
66 private Color image_margin_revealed_gradient_end;
67 private Color image_margin_revealed_gradient_middle;
68 private Color menu_border;
69 private Color menu_item_border;
70 private Color menu_item_pressed_gradient_begin;
71 private Color menu_item_pressed_gradient_end;
72 private Color menu_item_pressed_gradient_middle;
73 private Color menu_item_selected;
74 private Color menu_item_selected_gradient_begin;
75 private Color menu_item_selected_gradient_end;
76 private Color menu_strip_gradient_begin;
77 private Color menu_strip_gradient_end;
78 private Color overflow_button_gradient_begin;
79 private Color overflow_button_gradient_end;
80 private Color overflow_button_gradient_middle;
81 private Color rafting_container_gradient_begin;
82 private Color rafting_container_gradient_end;
83 private Color separator_dark;
84 private Color separator_light;
85 private Color status_strip_gradient_begin;
86 private Color status_strip_gradient_end;
87 private Color tool_strip_border;
88 private Color tool_strip_content_panel_gradient_begin;
89 private Color tool_strip_content_panel_gradient_end;
90 private Color tool_strip_drop_down_background;
91 private Color tool_strip_gradient_begin;
92 private Color tool_strip_gradient_end;
93 private Color tool_strip_gradient_middle;
94 private Color tool_strip_panel_gradient_begin;
95 private Color tool_strip_panel_gradient_end;
98 #region Public Constructor
99 public ProfessionalColorTable ()
105 #region Public Properties
106 public virtual Color ButtonCheckedGradientBegin { get { return this.button_checked_gradient_begin; } }
107 public virtual Color ButtonCheckedGradientEnd { get { return this.button_checked_gradient_end; } }
108 public virtual Color ButtonCheckedGradientMiddle { get { return this.button_checked_gradient_middle; } }
109 public virtual Color ButtonCheckedHighlight { get { return this.button_checked_highlight; } }
110 public virtual Color ButtonCheckedHighlightBorder { get { return this.button_checked_highlight_border; } }
111 public virtual Color ButtonPressedBorder { get { return this.button_pressed_border; } }
112 public virtual Color ButtonPressedGradientBegin { get { return this.button_pressed_gradient_begin; } }
113 public virtual Color ButtonPressedGradientEnd { get { return this.button_pressed_gradient_end; } }
114 public virtual Color ButtonPressedGradientMiddle { get { return this.button_pressed_gradient_middle; } }
115 public virtual Color ButtonPressedHighlight { get { return this.button_pressed_highlight; } }
116 public virtual Color ButtonPressedHighlightBorder { get { return this.button_pressed_highlight_border; } }
117 public virtual Color ButtonSelectedBorder { get { return this.button_selected_border; } }
118 public virtual Color ButtonSelectedGradientBegin { get { return this.button_selected_gradient_begin; } }
119 public virtual Color ButtonSelectedGradientEnd { get { return this.button_selected_gradient_end; } }
120 public virtual Color ButtonSelectedGradientMiddle { get { return this.button_selected_gradient_middle; } }
121 public virtual Color ButtonSelectedHighlight { get { return this.button_selected_highlight; } }
122 public virtual Color ButtonSelectedHighlightBorder { get { return this.button_selected_highlight_border; } }
123 public virtual Color CheckBackground { get { return this.check_background; } }
124 public virtual Color CheckPressedBackground { get { return this.check_pressed_background; } }
125 public virtual Color CheckSelectedBackground { get { return this.check_selected_background; } }
126 public virtual Color GripDark { get { return this.grip_dark; } }
127 public virtual Color GripLight { get { return this.grip_light; } }
128 public virtual Color ImageMarginGradientBegin { get { return this.image_margin_gradient_begin; } }
129 public virtual Color ImageMarginGradientEnd { get { return this.image_margin_gradient_end; } }
130 public virtual Color ImageMarginGradientMiddle { get { return this.image_margin_gradient_middle; } }
131 public virtual Color ImageMarginRevealedGradientBegin { get { return this.image_margin_revealed_gradient_begin; } }
132 public virtual Color ImageMarginRevealedGradientEnd { get { return this.image_margin_revealed_gradient_end; } }
133 public virtual Color ImageMarginRevealedGradientMiddle { get { return this.image_margin_revealed_gradient_middle; } }
134 public virtual Color MenuBorder { get { return this.menu_border; } }
135 public virtual Color MenuItemBorder { get { return this.menu_item_border; } }
136 public virtual Color MenuItemPressedGradientBegin { get { return this.menu_item_pressed_gradient_begin; } }
137 public virtual Color MenuItemPressedGradientEnd { get { return this.menu_item_pressed_gradient_end; } }
138 public virtual Color MenuItemPressedGradientMiddle { get { return this.menu_item_pressed_gradient_middle; } }
139 public virtual Color MenuItemSelected { get { return this.menu_item_selected; } }
140 public virtual Color MenuItemSelectedGradientBegin { get { return this.menu_item_selected_gradient_begin; } }
141 public virtual Color MenuItemSelectedGradientEnd { get { return this.menu_item_selected_gradient_end; } }
142 public virtual Color MenuStripGradientBegin { get { return this.menu_strip_gradient_begin; } }
143 public virtual Color MenuStripGradientEnd { get { return this.menu_strip_gradient_end; } }
144 public virtual Color OverflowButtonGradientBegin { get { return this.overflow_button_gradient_begin; } }
145 public virtual Color OverflowButtonGradientEnd { get { return this.overflow_button_gradient_end; } }
146 public virtual Color OverflowButtonGradientMiddle { get { return this.overflow_button_gradient_middle; } }
147 public virtual Color RaftingContainerGradientBegin { get { return this.rafting_container_gradient_begin; } }
148 public virtual Color RaftingContainerGradientEnd { get { return this.rafting_container_gradient_end; } }
149 public virtual Color SeparatorDark { get { return this.separator_dark; } }
150 public virtual Color SeparatorLight { get { return this.separator_light; } }
151 public virtual Color StatusStripGradientBegin { get { return this.status_strip_gradient_begin; } }
152 public virtual Color StatusStripGradientEnd { get { return this.status_strip_gradient_end; } }
153 public virtual Color ToolStripBorder { get { return this.tool_strip_border; } }
154 public virtual Color ToolStripContentPanelGradientBegin { get { return this.tool_strip_content_panel_gradient_begin; } }
155 public virtual Color ToolStripContentPanelGradientEnd { get { return this.tool_strip_content_panel_gradient_end; } }
156 public virtual Color ToolStripDropDownBackground { get { return this.tool_strip_drop_down_background; } }
157 public virtual Color ToolStripGradientBegin { get { return this.tool_strip_gradient_begin; } }
158 public virtual Color ToolStripGradientEnd { get { return this.tool_strip_gradient_end; } }
159 public virtual Color ToolStripGradientMiddle { get { return this.tool_strip_gradient_middle; } }
160 public virtual Color ToolStripPanelGradientBegin { get { return this.tool_strip_panel_gradient_begin; } }
161 public virtual Color ToolStripPanelGradientEnd { get { return this.tool_strip_panel_gradient_end; } }
162 public bool UseSystemColors {
163 get { return use_system_colors; }
165 if (value != use_system_colors) {
166 use_system_colors = value; CalculateColors ();
172 #region Private Methods
173 private void CalculateColors ()
175 switch (GetCurrentStyle ()) {
176 case ColorSchemes.Classic:
177 button_checked_gradient_begin = Color.Empty;
178 button_checked_gradient_end = Color.Empty;
179 button_checked_gradient_middle = Color.Empty;
180 button_checked_highlight = Color.FromArgb (184, 191, 211);
181 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
183 button_pressed_border = Color.FromKnownColor (KnownColor.Highlight);
184 button_pressed_gradient_begin = Color.FromArgb (133, 146, 181);
185 button_pressed_gradient_end = Color.FromArgb (133, 146, 181);
186 button_pressed_gradient_middle = Color.FromArgb (133, 146, 181);
187 button_pressed_highlight = Color.FromArgb (131, 144, 179);
188 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
190 button_selected_border = Color.FromKnownColor (KnownColor.Highlight);
191 button_selected_gradient_begin = Color.FromArgb (182, 189, 210);
192 button_selected_gradient_end = Color.FromArgb (182, 189, 210);
193 button_selected_gradient_middle = Color.FromArgb (182, 189, 210);
194 button_selected_highlight = Color.FromArgb (184, 191, 211);
195 button_selected_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
197 check_background = Color.FromKnownColor (KnownColor.Highlight);
198 check_pressed_background = Color.FromArgb (133, 146, 181);
199 check_selected_background = Color.FromArgb (133, 146, 181);
201 grip_dark = Color.FromArgb (160, 160, 160);
202 grip_light = SystemColors.Window;
204 image_margin_gradient_begin = Color.FromArgb (245, 244, 242);
205 image_margin_gradient_end = SystemColors.Control;
206 image_margin_gradient_middle = Color.FromArgb (234, 232, 228);
207 image_margin_revealed_gradient_begin = Color.FromArgb (238, 236, 233);
208 image_margin_revealed_gradient_end = Color.FromArgb (216, 213, 206);
209 image_margin_revealed_gradient_middle = Color.FromArgb (225, 222, 217);
211 menu_border = Color.FromArgb (102, 102, 102);
212 menu_item_border = SystemColors.Highlight;
214 menu_item_pressed_gradient_begin = Color.FromArgb (245, 244, 242);
215 menu_item_pressed_gradient_end = Color.FromArgb (234, 232, 228);
216 menu_item_pressed_gradient_middle = Color.FromArgb (225, 222, 217);
217 menu_item_selected = SystemColors.Window;
218 menu_item_selected_gradient_begin = Color.FromArgb (182, 189, 210);
219 menu_item_selected_gradient_end = Color.FromArgb (182, 189, 210);
221 menu_strip_gradient_begin = SystemColors.ButtonFace;
222 menu_strip_gradient_end = Color.FromArgb (246, 245, 244);
224 overflow_button_gradient_begin = Color.FromArgb (225, 222, 217);
225 overflow_button_gradient_end = SystemColors.ButtonShadow;
226 overflow_button_gradient_middle = Color.FromArgb (216, 213, 206);
228 rafting_container_gradient_begin = SystemColors.ButtonFace;
229 rafting_container_gradient_end = Color.FromArgb (246, 245, 244);
231 separator_dark = Color.FromArgb (166, 166, 166);
232 separator_light = SystemColors.ButtonHighlight;
234 status_strip_gradient_begin = SystemColors.ButtonFace;
235 status_strip_gradient_end = Color.FromArgb (246, 245, 244);
237 tool_strip_border = Color.FromArgb (219, 216, 209);
238 tool_strip_content_panel_gradient_begin = SystemColors.ButtonFace;
239 tool_strip_content_panel_gradient_end = Color.FromArgb (246, 245, 244);
240 tool_strip_drop_down_background = Color.FromArgb (249, 248, 247);
242 tool_strip_gradient_begin = Color.FromArgb (245, 244, 242);
243 tool_strip_gradient_end = SystemColors.ButtonFace;
244 tool_strip_gradient_middle = Color.FromArgb (234, 232, 228);
246 tool_strip_panel_gradient_begin = SystemColors.ButtonFace;
247 tool_strip_panel_gradient_end = Color.FromArgb (246, 245, 244);
249 case ColorSchemes.NormalColor:
250 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (255, 223, 154);
251 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (255, 166, 76);
252 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (255, 195, 116);
253 button_checked_highlight = Color.FromArgb (195, 211, 237);
254 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
255 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (0, 0, 128);
256 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (254, 128, 62);
257 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (255, 223, 154);
258 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (255, 177, 109);
259 button_pressed_highlight = use_system_colors ? Color.FromArgb (150, 179, 225) : Color.FromArgb (150, 179, 225);
260 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
261 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (0, 0, 128);
262 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 255, 222);
263 button_selected_gradient_end = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 203, 136);
264 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 225, 172);
265 button_selected_highlight = use_system_colors ? Color.FromArgb (195, 211, 237) : Color.FromArgb (195, 211, 237);
266 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (0, 0, 128);
268 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (255, 192, 111);
269 check_pressed_background = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (254, 128, 62);
270 check_selected_background = use_system_colors ? Color.FromArgb (152, 181, 226) : Color.FromArgb (254, 128, 62);
272 grip_dark = use_system_colors ? Color.FromArgb (193, 190, 179) : Color.FromArgb (39, 65, 118);
273 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
275 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (227, 239, 255);
276 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (123, 164, 224);
277 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (203, 225, 252);
278 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (247, 246, 239) : Color.FromArgb (203, 221, 246);
279 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (114, 155, 215);
280 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (161, 197, 249);
282 menu_border = use_system_colors ? Color.FromArgb (138, 134, 122) : Color.FromArgb (0, 45, 150);
283 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (0, 0, 128);
285 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (227, 239, 255);
286 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (123, 164, 224);
287 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (161, 197, 249);
288 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 238, 194);
289 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 255, 222);
290 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (193, 210, 238) : Color.FromArgb (255, 203, 136);
292 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
293 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
295 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (127, 177, 250);
296 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (0, 53, 145);
297 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (82, 127, 208);
299 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
300 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
302 separator_dark = use_system_colors ? Color.FromArgb (197, 194, 184) : Color.FromArgb (106, 140, 203);
303 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (241, 249, 255);
305 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
306 status_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
308 tool_strip_border = use_system_colors ? Color.FromArgb (239, 237, 222) : Color.FromArgb (59, 97, 156);
309 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
310 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
311 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (252, 252, 249) : Color.FromArgb (246, 246, 246);
313 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (227, 239, 255);
314 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (123, 164, 224);
315 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (203, 225, 252);
317 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (158, 190, 245);
318 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (196, 218, 250);
320 case ColorSchemes.HomeStead:
321 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (255, 223, 154);
322 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (255, 166, 76);
323 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (255, 195, 116);
324 button_checked_highlight = Color.FromArgb (223, 227, 213);
325 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
327 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (63, 93, 56);
328 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (254, 128, 62);
329 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (255, 223, 154);
330 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (255, 177, 109);
331 button_pressed_highlight = use_system_colors ? Color.FromArgb (200, 206, 182) : Color.FromArgb (200, 206, 182);
332 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
334 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (63, 93, 56);
335 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 255, 222);
336 button_selected_gradient_end = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 203, 136);
337 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 225, 172);
338 button_selected_highlight = use_system_colors ? Color.FromArgb (223, 227, 213) : Color.FromArgb (223, 227, 213);
339 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (63, 93, 56);
341 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (255, 192, 111);
342 check_pressed_background = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (254, 128, 62);
343 check_selected_background = use_system_colors ? Color.FromArgb (201, 208, 184) : Color.FromArgb (254, 128, 62);
345 grip_dark = use_system_colors ? Color.FromArgb (193, 190, 179) : Color.FromArgb (81, 94, 51);
346 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
348 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (255, 255, 237);
349 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (181, 196, 143);
350 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (206, 220, 167);
351 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (247, 246, 239) : Color.FromArgb (230, 230, 209);
352 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (160, 177, 116);
353 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (186, 201, 143);
355 menu_border = use_system_colors ? Color.FromArgb (138, 134, 122) : Color.FromArgb (117, 141, 94);
356 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (63, 93, 56);
358 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (237, 240, 214);
359 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (181, 196, 143);
360 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (186, 201, 143);
361 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 238, 194);
362 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 255, 222);
363 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (223, 227, 212) : Color.FromArgb (255, 203, 136);
365 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
366 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
368 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (242, 240, 228) : Color.FromArgb (186, 204, 150);
369 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (96, 119, 107);
370 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (238, 235, 220) : Color.FromArgb (141, 160, 107);
372 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
373 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
375 separator_dark = use_system_colors ? Color.FromArgb (197, 194, 184) : Color.FromArgb (96, 128, 88);
376 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (244, 247, 222);
378 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
379 status_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
381 tool_strip_border = use_system_colors ? Color.FromArgb (239, 237, 222) : Color.FromArgb (96, 128, 88);
382 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
383 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
384 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (252, 252, 249) : Color.FromArgb (244, 244, 238);
386 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (251, 250, 246) : Color.FromArgb (255, 255, 237);
387 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (181, 196, 143);
388 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (246, 244, 236) : Color.FromArgb (206, 220, 167);
390 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (217, 217, 167);
391 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 247) : Color.FromArgb (242, 241, 228);
393 case ColorSchemes.Metallic:
394 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (255, 223, 154);
395 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (255, 166, 76);
396 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (255, 195, 116);
397 button_checked_highlight = Color.FromArgb (231, 232, 235);
398 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
400 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (75, 75, 111);
401 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (254, 128, 62);
402 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (255, 223, 154);
403 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (255, 177, 109);
404 button_pressed_highlight = use_system_colors ? Color.FromArgb (215, 216, 222) : Color.FromArgb (215, 216, 222);
405 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
407 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (75, 75, 111);
408 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 255, 222);
409 button_selected_gradient_end = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 203, 136);
410 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 225, 172);
411 button_selected_highlight = use_system_colors ? Color.FromArgb (231, 232, 235) : Color.FromArgb (231, 232, 235);
412 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (75, 75, 111);
414 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (255, 192, 111);
415 check_pressed_background = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (254, 128, 62);
416 check_selected_background = use_system_colors ? Color.FromArgb (217, 218, 223) : Color.FromArgb (254, 128, 62);
418 grip_dark = use_system_colors ? Color.FromArgb (182, 182, 185) : Color.FromArgb (84, 84, 117);
419 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
421 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (248, 248, 249) : Color.FromArgb (249, 249, 255);
422 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (147, 145, 176);
423 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (240, 239, 241) : Color.FromArgb (225, 226, 236);
424 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (243, 242, 244) : Color.FromArgb (215, 215, 226);
425 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (227, 226, 230) : Color.FromArgb (118, 116, 151);
426 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (233, 233, 235) : Color.FromArgb (184, 185, 202);
428 menu_border = use_system_colors ? Color.FromArgb (126, 126, 129) : Color.FromArgb (124, 124, 148);
429 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (75, 75, 111);
431 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (248, 248, 249) : Color.FromArgb (232, 233, 242);
432 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (240, 239, 241) : Color.FromArgb (172, 170, 194);
433 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (233, 233, 235) : Color.FromArgb (184, 185, 202);
434 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 238, 194);
435 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 255, 222);
436 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (232, 233, 236) : Color.FromArgb (255, 203, 136);
438 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
439 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
441 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (233, 233, 235) : Color.FromArgb (186, 185, 206);
442 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (118, 116, 146);
443 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (227, 226, 230) : Color.FromArgb (156, 155, 180);
445 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
446 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
448 separator_dark = use_system_colors ? Color.FromArgb (186, 186, 189) : Color.FromArgb (110, 109, 143);
449 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (255, 255, 255);
451 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
452 status_strip_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
454 tool_strip_border = use_system_colors ? Color.FromArgb (229, 228, 232) : Color.FromArgb (124, 124, 148);
455 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
456 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
457 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (253, 250, 255);
459 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (248, 248, 249) : Color.FromArgb (249, 249, 255);
460 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (147, 145, 176);
461 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (240, 239, 241) : Color.FromArgb (225, 226, 236);
463 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (215, 215, 229);
464 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (249, 248, 249) : Color.FromArgb (243, 243, 247);
466 case ColorSchemes.MediaCenter:
467 button_checked_gradient_begin = use_system_colors ? Color.Empty : Color.FromArgb (226, 229, 238);
468 button_checked_gradient_end = use_system_colors ? Color.Empty : Color.FromArgb (226, 229, 238);
469 button_checked_gradient_middle = use_system_colors ? Color.Empty : Color.FromArgb (226, 229, 238);
470 button_checked_highlight = Color.FromArgb (196, 208, 229);
471 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
473 button_pressed_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
474 button_pressed_gradient_begin = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (153, 175, 212);
475 button_pressed_gradient_end = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (153, 175, 212);
476 button_pressed_gradient_middle = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (153, 175, 212);
477 button_pressed_highlight = use_system_colors ? Color.FromArgb (152, 173, 210) : Color.FromArgb (152, 173, 210);
478 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
480 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
481 button_selected_gradient_begin = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
482 button_selected_gradient_end = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
483 button_selected_gradient_middle = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
484 button_selected_highlight = use_system_colors ? Color.FromArgb (196, 208, 229) : Color.FromArgb (196, 208, 229);
485 button_selected_highlight_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
487 check_background = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (226, 229, 238);
488 check_pressed_background = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (51, 94, 168);
489 check_selected_background = use_system_colors ? Color.FromArgb (153, 175, 212) : Color.FromArgb (51, 94, 168);
491 grip_dark = use_system_colors ? Color.FromArgb (189, 188, 191) : Color.FromArgb (189, 188, 191);
492 grip_light = use_system_colors ? SystemColors.Window : Color.FromArgb (255, 255, 255);
494 image_margin_gradient_begin = use_system_colors ? Color.FromArgb (250, 250, 251) : Color.FromArgb (252, 252, 252);
495 image_margin_gradient_end = use_system_colors ? SystemColors.Control : Color.FromArgb (235, 233, 237);
496 image_margin_gradient_middle = use_system_colors ? Color.FromArgb (245, 244, 246) : Color.FromArgb (245, 244, 246);
497 image_margin_revealed_gradient_begin = use_system_colors ? Color.FromArgb (247, 246, 248) : Color.FromArgb (247, 246, 248);
498 image_margin_revealed_gradient_end = use_system_colors ? Color.FromArgb (237, 235, 239) : Color.FromArgb (228, 226, 230);
499 image_margin_revealed_gradient_middle = use_system_colors ? Color.FromArgb (241, 240, 242) : Color.FromArgb (241, 240, 242);
501 menu_border = use_system_colors ? Color.FromArgb (134, 133, 136) : Color.FromArgb (134, 133, 136);
502 menu_item_border = use_system_colors ? SystemColors.Highlight : Color.FromArgb (51, 94, 168);
504 menu_item_pressed_gradient_begin = use_system_colors ? Color.FromArgb (250, 250, 251) : Color.FromArgb (252, 252, 252);
505 menu_item_pressed_gradient_end = use_system_colors ? Color.FromArgb (245, 244, 246) : Color.FromArgb (245, 244, 246);
506 menu_item_pressed_gradient_middle = use_system_colors ? Color.FromArgb (241, 240, 242) : Color.FromArgb (241, 240, 242);
507 menu_item_selected = use_system_colors ? SystemColors.Window : Color.FromArgb (194, 207, 229);
508 menu_item_selected_gradient_begin = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
509 menu_item_selected_gradient_end = use_system_colors ? Color.FromArgb (194, 207, 229) : Color.FromArgb (194, 207, 229);
511 menu_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
512 menu_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
514 overflow_button_gradient_begin = use_system_colors ? Color.FromArgb (241, 240, 242) : Color.FromArgb (242, 242, 242);
515 overflow_button_gradient_end = use_system_colors ? SystemColors.ButtonShadow : Color.FromArgb (167, 166, 170);
516 overflow_button_gradient_middle = use_system_colors ? Color.FromArgb (237, 235, 239) : Color.FromArgb (224, 224, 225);
518 rafting_container_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
519 rafting_container_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
521 separator_dark = use_system_colors ? Color.FromArgb (193, 193, 196) : Color.FromArgb (193, 193, 196);
522 separator_light = use_system_colors ? SystemColors.ButtonHighlight : Color.FromArgb (255, 255, 255);
524 status_strip_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
525 status_strip_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
527 tool_strip_border = use_system_colors ? Color.FromArgb (238, 237, 240) : Color.FromArgb (238, 237, 240);
528 tool_strip_content_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
529 tool_strip_content_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
530 tool_strip_drop_down_background = use_system_colors ? Color.FromArgb (252, 252, 252) : Color.FromArgb (252, 252, 252);
532 tool_strip_gradient_begin = use_system_colors ? Color.FromArgb (250, 250, 251) : Color.FromArgb (252, 252, 252);
533 tool_strip_gradient_end = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
534 tool_strip_gradient_middle = use_system_colors ? Color.FromArgb (245, 244, 246) : Color.FromArgb (245, 244, 246);
536 tool_strip_panel_gradient_begin = use_system_colors ? SystemColors.ButtonFace : Color.FromArgb (235, 233, 237);
537 tool_strip_panel_gradient_end = use_system_colors ? Color.FromArgb (251, 250, 251) : Color.FromArgb (251, 250, 251);
539 case ColorSchemes.Aero:
540 button_checked_gradient_begin = Color.Empty;
541 button_checked_gradient_end = Color.Empty;
542 button_checked_gradient_middle = Color.Empty;
543 button_checked_highlight = Color.FromArgb (196, 225, 255);
544 button_checked_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
546 button_pressed_border = Color.FromKnownColor (KnownColor.Highlight);
547 button_pressed_gradient_begin = Color.FromArgb (153, 204, 255);
548 button_pressed_gradient_end = Color.FromArgb (153, 204, 255);
549 button_pressed_gradient_middle = Color.FromArgb (153, 204, 255);
550 button_pressed_highlight = Color.FromArgb (152, 203, 255);
551 button_pressed_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
553 button_selected_border = use_system_colors ? Color.FromKnownColor (KnownColor.Highlight) : Color.FromArgb (51, 94, 168);
554 button_selected_gradient_begin = Color.FromArgb (194, 224, 255);
555 button_selected_gradient_end = Color.FromArgb (194, 224, 255);
556 button_selected_gradient_middle = Color.FromArgb (194, 224, 255);
557 button_selected_highlight = Color.FromArgb (196, 225, 255);
558 button_selected_highlight_border = Color.FromKnownColor (KnownColor.Highlight);
560 check_background = Color.FromKnownColor (KnownColor.Highlight);
561 check_pressed_background = Color.FromArgb (153, 204, 255);
562 check_selected_background = Color.FromArgb (153, 204, 255);
564 grip_dark = Color.FromArgb (184, 184, 184);
565 grip_light = SystemColors.Window;
567 image_margin_gradient_begin = Color.FromArgb (252, 252, 252);
568 image_margin_gradient_end = SystemColors.Control;
569 image_margin_gradient_middle = Color.FromArgb (250, 250, 250);
570 image_margin_revealed_gradient_begin = Color.FromArgb (251, 251, 251);
571 image_margin_revealed_gradient_end = Color.FromArgb (245, 245, 245);
572 image_margin_revealed_gradient_middle = Color.FromArgb (247, 247, 247);
574 menu_border = Color.FromArgb (128, 128, 128);
575 menu_item_border = SystemColors.Highlight;
577 menu_item_pressed_gradient_begin = Color.FromArgb (252, 252, 252);
578 menu_item_pressed_gradient_end = Color.FromArgb (250, 250, 250);
579 menu_item_pressed_gradient_middle = Color.FromArgb (247, 247, 247);
580 menu_item_selected = SystemColors.Window;
581 menu_item_selected_gradient_begin = Color.FromArgb (194, 224, 255);
582 menu_item_selected_gradient_end = Color.FromArgb (194, 224, 255);
584 menu_strip_gradient_begin = SystemColors.ButtonFace;
585 menu_strip_gradient_end = Color.FromArgb (253, 253, 253);
587 overflow_button_gradient_begin = Color.FromArgb (247, 247, 247);
588 overflow_button_gradient_end = SystemColors.ButtonShadow;
589 overflow_button_gradient_middle = Color.FromArgb (245, 245, 245);
591 rafting_container_gradient_begin = SystemColors.ButtonFace;
592 rafting_container_gradient_end = Color.FromArgb (253, 253, 253);
594 separator_dark = Color.FromArgb (189, 189, 189);
595 separator_light = SystemColors.ButtonHighlight;
597 status_strip_gradient_begin = SystemColors.ButtonFace;
598 status_strip_gradient_end = Color.FromArgb (253, 253, 253);
600 tool_strip_border = Color.FromArgb (246, 246, 246);
601 tool_strip_content_panel_gradient_begin = SystemColors.ButtonFace;
602 tool_strip_content_panel_gradient_end = Color.FromArgb (253, 253, 253);
603 tool_strip_drop_down_background = Color.FromArgb (253, 253, 253);
605 tool_strip_gradient_begin = Color.FromArgb (252, 252, 252);
606 tool_strip_gradient_end = SystemColors.ButtonFace;
607 tool_strip_gradient_middle = Color.FromArgb (250, 250, 250);
609 tool_strip_panel_gradient_begin = SystemColors.ButtonFace;
610 tool_strip_panel_gradient_end = Color.FromArgb (253, 253, 253);
615 private ColorSchemes GetCurrentStyle ()
617 if (!VisualStyleInformation.IsEnabledByUser)
618 return ColorSchemes.Classic;
620 switch (VisualStyleInformation.DisplayName) {
622 return ColorSchemes.Aero;
623 case "Media Center Style":
624 return ColorSchemes.MediaCenter;
626 switch (VisualStyleInformation.ColorScheme) {
628 return ColorSchemes.NormalColor;
630 return ColorSchemes.HomeStead;
632 return ColorSchemes.Metallic;
634 return ColorSchemes.Classic;
641 #region Private Enums
642 private enum ColorSchemes
644 Classic, // Windows Classic (No theme)
645 NormalColor, // Luna Blue
646 HomeStead, // Luna Olive
647 Metallic, // Luna Silver
648 MediaCenter, // Media Center (Energy Blue)
649 Aero // Windows Vista