2 // System.Drawing.KnownColors
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
6 // Peter Dennis Bartok (pbartok@novell.com)
7 // Sebastien Pouliot <sebastien@ximian.com>
9 // Copyright (C) 2007 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 namespace System
.Drawing
{
34 internal static class KnownColors
{
36 internal class KnownColors
{
38 private KnownColors ()
42 // FindColorMatch relies on the index + 1 == KnowColor match
43 static internal uint[] ArgbValues
= new uint[] {
44 0x00000000, /* 000 - Empty */
45 0xFFD4D0C8, /* 001 - ActiveBorder */
46 0xFF0054E3, /* 002 - ActiveCaption */
47 0xFFFFFFFF, /* 003 - ActiveCaptionText */
48 0xFF808080, /* 004 - AppWorkspace */
49 0xFFECE9D8, /* 005 - Control */
50 0xFFACA899, /* 006 - ControlDark */
51 0xFF716F64, /* 007 - ControlDarkDark */
52 0xFFF1EFE2, /* 008 - ControlLight */
53 0xFFFFFFFF, /* 009 - ControlLightLight */
54 0xFF000000, /* 010 - ControlText */
55 0xFF004E98, /* 011 - Desktop */
56 0xFFACA899, /* 012 - GrayText */
57 0xFF316AC5, /* 013 - Highlight */
58 0xFFFFFFFF, /* 014 - HighlightText */
59 0xFF000080, /* 015 - HotTrack */
60 0xFFD4D0C8, /* 016 - InactiveBorder */
61 0xFF7A96DF, /* 017 - InactiveCaption */
62 0xFFD8E4F8, /* 018 - InactiveCaptionText */
63 0xFFFFFFE1, /* 019 - Info */
64 0xFF000000, /* 020 - InfoText */
65 0xFFFFFFFF, /* 021 - Menu */
66 0xFF000000, /* 022 - MenuText */
67 0xFFD4D0C8, /* 023 - ScrollBar */
68 0xFFFFFFFF, /* 024 - Window */
69 0xFF000000, /* 025 - WindowFrame */
70 0xFF000000, /* 026 - WindowText */
71 0x00FFFFFF, /* 027 - Transparent */
72 0xFFF0F8FF, /* 028 - AliceBlue */
73 0xFFFAEBD7, /* 029 - AntiqueWhite */
74 0xFF00FFFF, /* 030 - Aqua */
75 0xFF7FFFD4, /* 031 - Aquamarine */
76 0xFFF0FFFF, /* 032 - Azure */
77 0xFFF5F5DC, /* 033 - Beige */
78 0xFFFFE4C4, /* 034 - Bisque */
79 0xFF000000, /* 035 - Black */
80 0xFFFFEBCD, /* 036 - BlanchedAlmond */
81 0xFF0000FF, /* 037 - Blue */
82 0xFF8A2BE2, /* 038 - BlueViolet */
83 0xFFA52A2A, /* 039 - Brown */
84 0xFFDEB887, /* 040 - BurlyWood */
85 0xFF5F9EA0, /* 041 - CadetBlue */
86 0xFF7FFF00, /* 042 - Chartreuse */
87 0xFFD2691E, /* 043 - Chocolate */
88 0xFFFF7F50, /* 044 - Coral */
89 0xFF6495ED, /* 045 - CornflowerBlue */
90 0xFFFFF8DC, /* 046 - Cornsilk */
91 0xFFDC143C, /* 047 - Crimson */
92 0xFF00FFFF, /* 048 - Cyan */
93 0xFF00008B, /* 049 - DarkBlue */
94 0xFF008B8B, /* 050 - DarkCyan */
95 0xFFB8860B, /* 051 - DarkGoldenrod */
96 0xFFA9A9A9, /* 052 - DarkGray */
97 0xFF006400, /* 053 - DarkGreen */
98 0xFFBDB76B, /* 054 - DarkKhaki */
99 0xFF8B008B, /* 055 - DarkMagenta */
100 0xFF556B2F, /* 056 - DarkOliveGreen */
101 0xFFFF8C00, /* 057 - DarkOrange */
102 0xFF9932CC, /* 058 - DarkOrchid */
103 0xFF8B0000, /* 059 - DarkRed */
104 0xFFE9967A, /* 060 - DarkSalmon */
105 0xFF8FBC8B, /* 061 - DarkSeaGreen */
106 0xFF483D8B, /* 062 - DarkSlateBlue */
107 0xFF2F4F4F, /* 063 - DarkSlateGray */
108 0xFF00CED1, /* 064 - DarkTurquoise */
109 0xFF9400D3, /* 065 - DarkViolet */
110 0xFFFF1493, /* 066 - DeepPink */
111 0xFF00BFFF, /* 067 - DeepSkyBlue */
112 0xFF696969, /* 068 - DimGray */
113 0xFF1E90FF, /* 069 - DodgerBlue */
114 0xFFB22222, /* 070 - Firebrick */
115 0xFFFFFAF0, /* 071 - FloralWhite */
116 0xFF228B22, /* 072 - ForestGreen */
117 0xFFFF00FF, /* 073 - Fuchsia */
118 0xFFDCDCDC, /* 074 - Gainsboro */
119 0xFFF8F8FF, /* 075 - GhostWhite */
120 0xFFFFD700, /* 076 - Gold */
121 0xFFDAA520, /* 077 - Goldenrod */
122 0xFF808080, /* 078 - Gray */
123 0xFF008000, /* 079 - Green */
124 0xFFADFF2F, /* 080 - GreenYellow */
125 0xFFF0FFF0, /* 081 - Honeydew */
126 0xFFFF69B4, /* 082 - HotPink */
127 0xFFCD5C5C, /* 083 - IndianRed */
128 0xFF4B0082, /* 084 - Indigo */
129 0xFFFFFFF0, /* 085 - Ivory */
130 0xFFF0E68C, /* 086 - Khaki */
131 0xFFE6E6FA, /* 087 - Lavender */
132 0xFFFFF0F5, /* 088 - LavenderBlush */
133 0xFF7CFC00, /* 089 - LawnGreen */
134 0xFFFFFACD, /* 090 - LemonChiffon */
135 0xFFADD8E6, /* 091 - LightBlue */
136 0xFFF08080, /* 092 - LightCoral */
137 0xFFE0FFFF, /* 093 - LightCyan */
138 0xFFFAFAD2, /* 094 - LightGoldenrodYellow */
139 0xFFD3D3D3, /* 095 - LightGray */
140 0xFF90EE90, /* 096 - LightGreen */
141 0xFFFFB6C1, /* 097 - LightPink */
142 0xFFFFA07A, /* 098 - LightSalmon */
143 0xFF20B2AA, /* 099 - LightSeaGreen */
144 0xFF87CEFA, /* 100 - LightSkyBlue */
145 0xFF778899, /* 101 - LightSlateGray */
146 0xFFB0C4DE, /* 102 - LightSteelBlue */
147 0xFFFFFFE0, /* 103 - LightYellow */
148 0xFF00FF00, /* 104 - Lime */
149 0xFF32CD32, /* 105 - LimeGreen */
150 0xFFFAF0E6, /* 106 - Linen */
151 0xFFFF00FF, /* 107 - Magenta */
152 0xFF800000, /* 108 - Maroon */
153 0xFF66CDAA, /* 109 - MediumAquamarine */
154 0xFF0000CD, /* 110 - MediumBlue */
155 0xFFBA55D3, /* 111 - MediumOrchid */
156 0xFF9370DB, /* 112 - MediumPurple */
157 0xFF3CB371, /* 113 - MediumSeaGreen */
158 0xFF7B68EE, /* 114 - MediumSlateBlue */
159 0xFF00FA9A, /* 115 - MediumSpringGreen */
160 0xFF48D1CC, /* 116 - MediumTurquoise */
161 0xFFC71585, /* 117 - MediumVioletRed */
162 0xFF191970, /* 118 - MidnightBlue */
163 0xFFF5FFFA, /* 119 - MintCream */
164 0xFFFFE4E1, /* 120 - MistyRose */
165 0xFFFFE4B5, /* 121 - Moccasin */
166 0xFFFFDEAD, /* 122 - NavajoWhite */
167 0xFF000080, /* 123 - Navy */
168 0xFFFDF5E6, /* 124 - OldLace */
169 0xFF808000, /* 125 - Olive */
170 0xFF6B8E23, /* 126 - OliveDrab */
171 0xFFFFA500, /* 127 - Orange */
172 0xFFFF4500, /* 128 - OrangeRed */
173 0xFFDA70D6, /* 129 - Orchid */
174 0xFFEEE8AA, /* 130 - PaleGoldenrod */
175 0xFF98FB98, /* 131 - PaleGreen */
176 0xFFAFEEEE, /* 132 - PaleTurquoise */
177 0xFFDB7093, /* 133 - PaleVioletRed */
178 0xFFFFEFD5, /* 134 - PapayaWhip */
179 0xFFFFDAB9, /* 135 - PeachPuff */
180 0xFFCD853F, /* 136 - Peru */
181 0xFFFFC0CB, /* 137 - Pink */
182 0xFFDDA0DD, /* 138 - Plum */
183 0xFFB0E0E6, /* 139 - PowderBlue */
184 0xFF800080, /* 140 - Purple */
185 0xFFFF0000, /* 141 - Red */
186 0xFFBC8F8F, /* 142 - RosyBrown */
187 0xFF4169E1, /* 143 - RoyalBlue */
188 0xFF8B4513, /* 144 - SaddleBrown */
189 0xFFFA8072, /* 145 - Salmon */
190 0xFFF4A460, /* 146 - SandyBrown */
191 0xFF2E8B57, /* 147 - SeaGreen */
192 0xFFFFF5EE, /* 148 - SeaShell */
193 0xFFA0522D, /* 149 - Sienna */
194 0xFFC0C0C0, /* 150 - Silver */
195 0xFF87CEEB, /* 151 - SkyBlue */
196 0xFF6A5ACD, /* 152 - SlateBlue */
197 0xFF708090, /* 153 - SlateGray */
198 0xFFFFFAFA, /* 154 - Snow */
199 0xFF00FF7F, /* 155 - SpringGreen */
200 0xFF4682B4, /* 156 - SteelBlue */
201 0xFFD2B48C, /* 157 - Tan */
202 0xFF008080, /* 158 - Teal */
203 0xFFD8BFD8, /* 159 - Thistle */
204 0xFFFF6347, /* 160 - Tomato */
205 0xFF40E0D0, /* 161 - Turquoise */
206 0xFFEE82EE, /* 162 - Violet */
207 0xFFF5DEB3, /* 163 - Wheat */
208 0xFFFFFFFF, /* 164 - White */
209 0xFFF5F5F5, /* 165 - WhiteSmoke */
210 0xFFFFFF00, /* 166 - Yellow */
211 0xFF9ACD32, /* 167 - YellowGreen */
213 0xFFECE9D8, /* 168 - ButtonFace */
214 0xFFFFFFFF, /* 169 - ButtonHighlight */
215 0xFFACA899, /* 170 - ButtonShadow */
216 0xFF3D95FF, /* 171 - GradientActiveCaption */
217 0xFF9DB9EB, /* 172 - GradientInactiveCaption */
218 0xFFECE9D8, /* 173 - MenuBar */
219 0xFF316AC5, /* 174 - MenuHighlight */
223 static KnownColors ()
225 if (GDIPlus
.RunningOnWindows ()) {
226 // If we're on Windows we should behave like MS and pull the colors
227 RetrieveWindowsSystemColors ();
229 // note: Mono's SWF Theme class will call the static Update method to apply
230 // correct system colors outside Windows
233 // Windows values are in BGR format and without alpha
234 // so we force it to opaque (or everything will be transparent) and reverse B and R
235 static uint GetSysColor (GetSysColorIndex index
)
237 uint bgr
= GDIPlus
.Win32GetSysColor (index
);
238 return 0xFF000000 | (bgr
& 0xFF) << 16 | (bgr
& 0xFF00) | (bgr
>> 16);
241 static void RetrieveWindowsSystemColors ()
243 ArgbValues
[(int)KnownColor
.ActiveBorder
] = GetSysColor (GetSysColorIndex
.COLOR_ACTIVEBORDER
);
244 ArgbValues
[(int)KnownColor
.ActiveCaption
] = GetSysColor (GetSysColorIndex
.COLOR_ACTIVECAPTION
);
245 ArgbValues
[(int)KnownColor
.ActiveCaptionText
] = GetSysColor (GetSysColorIndex
.COLOR_CAPTIONTEXT
);
246 ArgbValues
[(int)KnownColor
.AppWorkspace
] = GetSysColor (GetSysColorIndex
.COLOR_APPWORKSPACE
);
247 ArgbValues
[(int)KnownColor
.Control
] = GetSysColor (GetSysColorIndex
.COLOR_BTNFACE
);
248 ArgbValues
[(int)KnownColor
.ControlDark
] = GetSysColor (GetSysColorIndex
.COLOR_BTNSHADOW
);
249 ArgbValues
[(int)KnownColor
.ControlDarkDark
] = GetSysColor (GetSysColorIndex
.COLOR_3DDKSHADOW
);
250 ArgbValues
[(int)KnownColor
.ControlLight
] = GetSysColor (GetSysColorIndex
.COLOR_3DLIGHT
);
251 ArgbValues
[(int)KnownColor
.ControlLightLight
] = GetSysColor (GetSysColorIndex
.COLOR_BTNHIGHLIGHT
);
252 ArgbValues
[(int)KnownColor
.ControlText
] = GetSysColor (GetSysColorIndex
.COLOR_BTNTEXT
);
253 ArgbValues
[(int)KnownColor
.Desktop
] = GetSysColor (GetSysColorIndex
.COLOR_DESKTOP
);
254 ArgbValues
[(int)KnownColor
.GrayText
] = GetSysColor (GetSysColorIndex
.COLOR_GRAYTEXT
);
255 ArgbValues
[(int)KnownColor
.Highlight
] = GetSysColor (GetSysColorIndex
.COLOR_HIGHLIGHT
);
256 ArgbValues
[(int)KnownColor
.HighlightText
] = GetSysColor (GetSysColorIndex
.COLOR_HIGHLIGHTTEXT
);
257 ArgbValues
[(int)KnownColor
.HotTrack
] = GetSysColor (GetSysColorIndex
.COLOR_HOTLIGHT
);
258 ArgbValues
[(int)KnownColor
.InactiveBorder
] = GetSysColor (GetSysColorIndex
.COLOR_INACTIVEBORDER
);
259 ArgbValues
[(int)KnownColor
.InactiveCaption
] = GetSysColor (GetSysColorIndex
.COLOR_INACTIVECAPTION
);
260 ArgbValues
[(int)KnownColor
.InactiveCaptionText
] = GetSysColor (GetSysColorIndex
.COLOR_INACTIVECAPTIONTEXT
);
261 ArgbValues
[(int)KnownColor
.Info
] = GetSysColor (GetSysColorIndex
.COLOR_INFOBK
);
262 ArgbValues
[(int)KnownColor
.InfoText
] = GetSysColor (GetSysColorIndex
.COLOR_INFOTEXT
);
263 ArgbValues
[(int)KnownColor
.Menu
] = GetSysColor (GetSysColorIndex
.COLOR_MENU
);
264 ArgbValues
[(int)KnownColor
.MenuText
] = GetSysColor (GetSysColorIndex
.COLOR_MENUTEXT
);
265 ArgbValues
[(int)KnownColor
.ScrollBar
] = GetSysColor (GetSysColorIndex
.COLOR_SCROLLBAR
);
266 ArgbValues
[(int)KnownColor
.Window
] = GetSysColor (GetSysColorIndex
.COLOR_WINDOW
);
267 ArgbValues
[(int)KnownColor
.WindowFrame
] = GetSysColor (GetSysColorIndex
.COLOR_WINDOWFRAME
);
268 ArgbValues
[(int)KnownColor
.WindowText
] = GetSysColor (GetSysColorIndex
.COLOR_WINDOWTEXT
);
270 ArgbValues
[(int)KnownColor
.ButtonFace
] = GetSysColor (GetSysColorIndex
.COLOR_BTNFACE
);
271 ArgbValues
[(int)KnownColor
.ButtonHighlight
] = GetSysColor (GetSysColorIndex
.COLOR_BTNHIGHLIGHT
);
272 ArgbValues
[(int)KnownColor
.ButtonShadow
] = GetSysColor (GetSysColorIndex
.COLOR_BTNSHADOW
);
273 ArgbValues
[(int)KnownColor
.GradientActiveCaption
] = GetSysColor (GetSysColorIndex
.COLOR_GRADIENTACTIVECAPTION
);
274 ArgbValues
[(int)KnownColor
.GradientInactiveCaption
] = GetSysColor (GetSysColorIndex
.COLOR_GRADIENTINACTIVECAPTION
);
275 ArgbValues
[(int)KnownColor
.MenuBar
] = GetSysColor (GetSysColorIndex
.COLOR_MENUBAR
);
276 ArgbValues
[(int)KnownColor
.MenuHighlight
] = GetSysColor (GetSysColorIndex
.COLOR_MENUHIGHLIGHT
);
280 public static Color
FromKnownColor (KnownColor kc
)
284 if ((n
<= 0) || (n
>= ArgbValues
.Length
)) {
285 // This is what it returns!
286 c
= Color
.FromArgb (0, 0, 0, 0);
288 c
.name
= kc
.ToString ();
290 c
.state
|= (short) Color
.ColorType
.Named
;
293 c
.state
= (short) (Color
.ColorType
.ARGB
| Color
.ColorType
.Known
| Color
.ColorType
.Named
);
294 if ((n
< 27) || (n
> 169))
295 c
.state
|= (short) Color
.ColorType
.System
;
296 c
.Value
= ArgbValues
[n
];
298 c
.name
= GetName (n
);
305 public static string GetName (short kc
)
308 case 1: return "ActiveBorder";
309 case 2: return "ActiveCaption";
310 case 3: return "ActiveCaptionText";
311 case 4: return "AppWorkspace";
312 case 5: return "Control";
313 case 6: return "ControlDark";
314 case 7: return "ControlDarkDark";
315 case 8: return "ControlLight";
316 case 9: return "ControlLightLight";
317 case 10: return "ControlText";
318 case 11: return "Desktop";
319 case 12: return "GrayText";
320 case 13: return "Highlight";
321 case 14: return "HighlightText";
322 case 15: return "HotTrack";
323 case 16: return "InactiveBorder";
324 case 17: return "InactiveCaption";
325 case 18: return "InactiveCaptionText";
326 case 19: return "Info";
327 case 20: return "InfoText";
328 case 21: return "Menu";
329 case 22: return "MenuText";
330 case 23: return "ScrollBar";
331 case 24: return "Window";
332 case 25: return "WindowFrame";
333 case 26: return "WindowText";
334 case 27: return "Transparent";
335 case 28: return "AliceBlue";
336 case 29: return "AntiqueWhite";
337 case 30: return "Aqua";
338 case 31: return "Aquamarine";
339 case 32: return "Azure";
340 case 33: return "Beige";
341 case 34: return "Bisque";
342 case 35: return "Black";
343 case 36: return "BlanchedAlmond";
344 case 37: return "Blue";
345 case 38: return "BlueViolet";
346 case 39: return "Brown";
347 case 40: return "BurlyWood";
348 case 41: return "CadetBlue";
349 case 42: return "Chartreuse";
350 case 43: return "Chocolate";
351 case 44: return "Coral";
352 case 45: return "CornflowerBlue";
353 case 46: return "Cornsilk";
354 case 47: return "Crimson";
355 case 48: return "Cyan";
356 case 49: return "DarkBlue";
357 case 50: return "DarkCyan";
358 case 51: return "DarkGoldenrod";
359 case 52: return "DarkGray";
360 case 53: return "DarkGreen";
361 case 54: return "DarkKhaki";
362 case 55: return "DarkMagenta";
363 case 56: return "DarkOliveGreen";
364 case 57: return "DarkOrange";
365 case 58: return "DarkOrchid";
366 case 59: return "DarkRed";
367 case 60: return "DarkSalmon";
368 case 61: return "DarkSeaGreen";
369 case 62: return "DarkSlateBlue";
370 case 63: return "DarkSlateGray";
371 case 64: return "DarkTurquoise";
372 case 65: return "DarkViolet";
373 case 66: return "DeepPink";
374 case 67: return "DeepSkyBlue";
375 case 68: return "DimGray";
376 case 69: return "DodgerBlue";
377 case 70: return "Firebrick";
378 case 71: return "FloralWhite";
379 case 72: return "ForestGreen";
380 case 73: return "Fuchsia";
381 case 74: return "Gainsboro";
382 case 75: return "GhostWhite";
383 case 76: return "Gold";
384 case 77: return "Goldenrod";
385 case 78: return "Gray";
386 case 79: return "Green";
387 case 80: return "GreenYellow";
388 case 81: return "Honeydew";
389 case 82: return "HotPink";
390 case 83: return "IndianRed";
391 case 84: return "Indigo";
392 case 85: return "Ivory";
393 case 86: return "Khaki";
394 case 87: return "Lavender";
395 case 88: return "LavenderBlush";
396 case 89: return "LawnGreen";
397 case 90: return "LemonChiffon";
398 case 91: return "LightBlue";
399 case 92: return "LightCoral";
400 case 93: return "LightCyan";
401 case 94: return "LightGoldenrodYellow";
402 case 95: return "LightGray";
403 case 96: return "LightGreen";
404 case 97: return "LightPink";
405 case 98: return "LightSalmon";
406 case 99: return "LightSeaGreen";
407 case 100: return "LightSkyBlue";
408 case 101: return "LightSlateGray";
409 case 102: return "LightSteelBlue";
410 case 103: return "LightYellow";
411 case 104: return "Lime";
412 case 105: return "LimeGreen";
413 case 106: return "Linen";
414 case 107: return "Magenta";
415 case 108: return "Maroon";
416 case 109: return "MediumAquamarine";
417 case 110: return "MediumBlue";
418 case 111: return "MediumOrchid";
419 case 112: return "MediumPurple";
420 case 113: return "MediumSeaGreen";
421 case 114: return "MediumSlateBlue";
422 case 115: return "MediumSpringGreen";
423 case 116: return "MediumTurquoise";
424 case 117: return "MediumVioletRed";
425 case 118: return "MidnightBlue";
426 case 119: return "MintCream";
427 case 120: return "MistyRose";
428 case 121: return "Moccasin";
429 case 122: return "NavajoWhite";
430 case 123: return "Navy";
431 case 124: return "OldLace";
432 case 125: return "Olive";
433 case 126: return "OliveDrab";
434 case 127: return "Orange";
435 case 128: return "OrangeRed";
436 case 129: return "Orchid";
437 case 130: return "PaleGoldenrod";
438 case 131: return "PaleGreen";
439 case 132: return "PaleTurquoise";
440 case 133: return "PaleVioletRed";
441 case 134: return "PapayaWhip";
442 case 135: return "PeachPuff";
443 case 136: return "Peru";
444 case 137: return "Pink";
445 case 138: return "Plum";
446 case 139: return "PowderBlue";
447 case 140: return "Purple";
448 case 141: return "Red";
449 case 142: return "RosyBrown";
450 case 143: return "RoyalBlue";
451 case 144: return "SaddleBrown";
452 case 145: return "Salmon";
453 case 146: return "SandyBrown";
454 case 147: return "SeaGreen";
455 case 148: return "SeaShell";
456 case 149: return "Sienna";
457 case 150: return "Silver";
458 case 151: return "SkyBlue";
459 case 152: return "SlateBlue";
460 case 153: return "SlateGray";
461 case 154: return "Snow";
462 case 155: return "SpringGreen";
463 case 156: return "SteelBlue";
464 case 157: return "Tan";
465 case 158: return "Teal";
466 case 159: return "Thistle";
467 case 160: return "Tomato";
468 case 161: return "Turquoise";
469 case 162: return "Violet";
470 case 163: return "Wheat";
471 case 164: return "White";
472 case 165: return "WhiteSmoke";
473 case 166: return "Yellow";
474 case 167: return "YellowGreen";
476 case 168: return "ButtonFace";
477 case 169: return "ButtonHighlight";
478 case 170: return "ButtonShadow";
479 case 171: return "GradientActiveCaption";
480 case 172: return "GradientInactiveCaption";
481 case 173: return "MenuBar";
482 case 174: return "MenuHighlight";
484 default: return String
.Empty
;
488 public static string GetName (KnownColor kc
)
490 return GetName ((short)kc
);
493 // FIXME: Linear scan
494 public static Color
FindColorMatch (Color c
)
496 uint argb
= (uint) c
.ToArgb ();
499 const int first_real_color_index
= (int) KnownColor
.AliceBlue
;
500 const int last_real_color_index
= (int) KnownColor
.YellowGreen
;
502 for (int i
= first_real_color_index
- 1; i
< last_real_color_index
; i
++) {
503 if (argb
== KnownColors
.ArgbValues
[i
])
504 return KnownColors
.FromKnownColor ((KnownColor
)i
);
510 // When this method is called, we teach any new color(s) to the Color class
511 // NOTE: This is called (reflection) by System.Windows.Forms.Theme (this isn't dead code)
512 public static void Update (int knownColor
, int color
)
514 ArgbValues
[knownColor
] = (uint)color
;