Source code: com/port80/eclipse/util/ColorFactory.java
1 package com.port80.eclipse.util;
2
3 import java.util.Collection;
4 import java.util.Iterator;
5
6 import org.eclipse.swt.events.DisposeEvent;
7 import org.eclipse.swt.events.DisposeListener;
8 import org.eclipse.swt.graphics.Color;
9 import org.eclipse.swt.graphics.RGB;
10 import org.eclipse.swt.widgets.Display;
11
12 import com.port80.util.Debug;
13 import com.port80.util.Msg;
14 import com.port80.util.Sprint;
15 import com.port80.util.attr.IAttrFactory;
16 import com.port80.util.struct.IntKeyHashMap;
17 import com.port80.util.struct.IntValueHashMap;
18
19 /**
20 * @author chrisl
21 */
22 public class ColorFactory implements IAttrFactory, DisposeListener {
23
24 ////////////////////////////////////////////////////////////////////////
25
26 private static final String NAME = "ColorFactory";
27 private static final boolean DEBUG = false;
28 private static final boolean VERBOSE = Debug.isVerbose();
29
30 // initialize colorTable
31 private static final IntValueHashMap fCOLORVALUES = new IntValueHashMap();
32 private static final IntKeyHashMap fCOLORNAMES = new IntKeyHashMap();
33 static {
34 initRGBTable();
35 }
36
37 private static ColorFactory fDefault;
38 private static Display fDisplay;
39
40 ////////////////////////////////////////////////////////////////////////
41
42 private IntKeyHashMap fColorTable;
43
44 ////////////////////////////////////////////////////////////////////////
45
46 public ColorFactory() {
47 fDisplay = Display.getDefault();
48 fColorTable = new IntKeyHashMap();
49 }
50
51 ////////////////////////////////////////////////////////////////////////
52
53 public static ColorFactory getDefault() {
54 if (fDefault == null)
55 fDefault = new ColorFactory();
56 return fDefault;
57 }
58
59 ////////////////////////////////////////////////////////////////////////
60
61 public RGB getRGB(String name) {
62 if (name == null || name.length() == 0)
63 return null;
64 if (name.startsWith("0x")) {
65 int value = Integer.parseInt(name.substring(2), 16);
66 return new RGB((value >> 16) & 0xff, (value >> 8) & 0xff, value & 0xff);
67 } else {
68 int value = fCOLORVALUES.get(name.toLowerCase());
69 if (value < 0) {
70 value = 0x808080;
71 Msg.err(NAME + ".createObject(): invalid color name: " + name);
72 }
73 return new RGB((value >> 16) & 0xff, (value >> 8) & 0xff, value & 0xff);
74 }
75 }
76
77 public Color create(String name) {
78 if (name == null || name.length() == 0)
79 return null;
80 Color ret = null;
81 try {
82 // Not work, cannot recognize 'blue'.
83 // ret=Color.getColor(attrvalue);
84 if (name.startsWith("0x")) {
85 int value = Integer.parseInt(name.substring(2), 16);
86 ret = getColor(value);
87 if (ret == null)
88 ret = createColor(value);
89 } else {
90 int value = fCOLORVALUES.get(name.toLowerCase());
91 if (value < 0) {
92 value = 0x808080;
93 Msg.err(NAME + ".createObject(): invalid color name: " + name);
94 }
95 ret = getColor(value);
96 if (ret == null)
97 ret = createColor(value);
98 }
99 } catch (Exception e) {
100 Msg.err(NAME + ".createObject(): invalid input string: " + name);
101 }
102 if (DEBUG)
103 System.err.println("attr=" + name + ", color=" + ret);
104 return ret;
105 }
106
107 public Color create(int value) {
108 return (Color) createColor(value);
109 }
110
111 public Color deriveLighterColor(Color color, int delta) {
112 int red = Math.min(color.getRed() + ((delta >> 16) & 0xff), 0xff);
113 int green = Math.min(color.getGreen() + ((delta >> 8) & 0xff), 0xff);
114 int blue = Math.min(color.getBlue() + (delta & 0xff), 0xff);
115 int rgb = (red << 16) | (green << 8) | blue;
116 return create(rgb);
117 }
118
119 public Color deriveDarkerColor(Color color, int delta) {
120 int red = Math.max(color.getRed() - ((delta >> 16) & 0xff), 0);
121 int green = Math.max(color.getGreen() - ((delta >> 8) & 0xff), 0);
122 int blue = Math.max(color.getBlue() - (delta & 0xff), 0);
123 int rgb = (red << 16) | (green << 8) | blue;
124 return create(rgb);
125 }
126
127 ////////////////////////////////////////////////////////////////////////
128
129 private Color createColor(int value) {
130 Color ret = getColor(value);
131 if (ret == null) {
132 ret = new Color(fDisplay, (value >> 16) & 0xff, (value >> 8) & 0xff, value & 0xff);
133 fColorTable.put(value + 1, ret);
134 }
135 return ret;
136 }
137
138 private Color getColor(int value) {
139 return (Color) fColorTable.get(value + 1);
140 }
141
142 ////////////////////////////////////////////////////////////////////////
143
144 /**
145 * Convert String representation of an attribute value to the
146 * appropriate object for storing in AttrTable.
147 */
148 public Object createObject(String attrvalue) {
149 return create(attrvalue);
150 }
151
152 public boolean isValid(Object a) {
153 return (a instanceof Color);
154 }
155
156 public Class getObjectClass() {
157 return Color.class;
158 }
159
160 /** The String representation of an attribute value. */
161 public String toString(Object attr) {
162 Color c = (Color) attr;
163 int value = (c.getRed() << 16) | (c.getGreen() << 8) | c.getBlue();
164 String ret = (String) fCOLORNAMES.get(value + 1);
165 if (ret == null)
166 ret = Sprint.f("0x%02x%02x%02x").a(c.getRed()).a(c.getGreen()).a(c.getBlue()).end();
167 return ret;
168 }
169
170 /** The String representation of attribute type itself. */
171 public String toString() {
172 return NAME;
173 }
174
175 /** Prompt user and present a user interface to obtain an
176 * attribute value from user. */
177 public Object promptUser(String prompt) {
178 return null;
179 }
180
181 ////////////////////////////////////////////////////////////////////////
182
183 public void widgetDisposed(DisposeEvent e) {
184 dispose();
185 }
186
187 public void dispose() {
188 Collection values = fColorTable.values();
189 Color color;
190 for (Iterator it = values.iterator(); it.hasNext();) {
191 color = (Color) it.next();
192 color.dispose();
193 }
194 if (VERBOSE) {
195 System.err.println(NAME + ".disposed(): " + fColorTable.size() + " colors.");
196 }
197 fColorTable.clear();
198 }
199
200 ////////////////////////////////////////////////////////////////////////
201
202 private static final void initRGBTable() {
203 initRGB("aliceblue", makeInt(240, 248, 255));
204 initRGB("antiquewhite", makeInt(250, 235, 215));
205 initRGB("antiquewhite1", makeInt(255, 239, 219), false);
206 initRGB("antiquewhite2", makeInt(238, 223, 204), false);
207 initRGB("antiquewhite3", makeInt(205, 192, 176), false);
208 initRGB("antiquewhite4", makeInt(139, 131, 120), false);
209 initRGB("aquamarine", makeInt(127, 255, 212));
210 initRGB("aquamarine1", makeInt(127, 255, 212), false);
211 initRGB("aquamarine2", makeInt(118, 238, 198), false);
212 initRGB("aquamarine3", makeInt(102, 205, 170), false);
213 initRGB("aquamarine4", makeInt(69, 139, 116), false);
214 initRGB("azure", makeInt(240, 255, 255));
215 initRGB("azure1", makeInt(240, 255, 255), false);
216 initRGB("azure2", makeInt(224, 238, 238), false);
217 initRGB("azure3", makeInt(193, 205, 205), false);
218 initRGB("azure4", makeInt(131, 139, 139), false);
219 initRGB("beige", makeInt(245, 245, 220));
220 initRGB("bisque", makeInt(255, 228, 196));
221 initRGB("bisque1", makeInt(255, 228, 196), false);
222 initRGB("bisque2", makeInt(238, 213, 183), false);
223 initRGB("bisque3", makeInt(205, 183, 158), false);
224 initRGB("bisque4", makeInt(139, 125, 107), false);
225 initRGB("black", makeInt(0, 0, 0));
226 initRGB("blanchedalmond", makeInt(255, 235, 205));
227 initRGB("blue", makeInt(0, 0, 255));
228 initRGB("blue1", makeInt(0, 0, 255), false);
229 initRGB("blue2", makeInt(0, 0, 238), false);
230 initRGB("blue3", makeInt(0, 0, 205), false);
231 initRGB("blue4", makeInt(0, 0, 139), false);
232 initRGB("blueviolet", makeInt(138, 43, 226));
233 initRGB("brown", makeInt(165, 42, 42));
234 initRGB("brown1", makeInt(255, 64, 64), false);
235 initRGB("brown2", makeInt(238, 59, 59), false);
236 initRGB("brown3", makeInt(205, 51, 51), false);
237 initRGB("brown4", makeInt(139, 35, 35), false);
238 initRGB("burlywood", makeInt(222, 184, 135));
239 initRGB("burlywood1", makeInt(255, 211, 155), false);
240 initRGB("burlywood2", makeInt(238, 197, 145), false);
241 initRGB("burlywood3", makeInt(205, 170, 125), false);
242 initRGB("burlywood4", makeInt(139, 115, 85), false);
243 initRGB("cadetblue", makeInt(95, 158, 160));
244 initRGB("cadetblue1", makeInt(152, 245, 255), false);
245 initRGB("cadetblue2", makeInt(142, 229, 238), false);
246 initRGB("cadetblue3", makeInt(122, 197, 205), false);
247 initRGB("cadetblue4", makeInt(83, 134, 139), false);
248 initRGB("chartreuse", makeInt(127, 255, 0));
249 initRGB("chartreuse1", makeInt(127, 255, 0), false);
250 initRGB("chartreuse2", makeInt(118, 238, 0), false);
251 initRGB("chartreuse3", makeInt(102, 205, 0), false);
252 initRGB("chartreuse4", makeInt(69, 139, 0), false);
253 initRGB("chocolate", makeInt(210, 105, 30));
254 initRGB("chocolate1", makeInt(255, 127, 36), false);
255 initRGB("chocolate2", makeInt(238, 118, 33), false);
256 initRGB("chocolate3", makeInt(205, 102, 29), false);
257 initRGB("chocolate4", makeInt(139, 69, 19), false);
258 initRGB("coral", makeInt(255, 127, 80));
259 initRGB("coral1", makeInt(255, 114, 86), false);
260 initRGB("coral2", makeInt(238, 106, 80), false);
261 initRGB("coral3", makeInt(205, 91, 69), false);
262 initRGB("coral4", makeInt(139, 62, 47), false);
263 initRGB("cornflowerblue", makeInt(100, 149, 237));
264 initRGB("cornsilk", makeInt(255, 248, 220));
265 initRGB("cornsilk1", makeInt(255, 248, 220), false);
266 initRGB("cornsilk2", makeInt(238, 232, 205), false);
267 initRGB("cornsilk3", makeInt(205, 200, 177), false);
268 initRGB("cornsilk4", makeInt(139, 136, 120), false);
269 initRGB("crimson", makeInt(220, 20, 60));
270 initRGB("cyan", makeInt(0, 255, 255));
271 initRGB("cyan1", makeInt(0, 255, 255), false);
272 initRGB("cyan2", makeInt(0, 238, 238), false);
273 initRGB("cyan3", makeInt(0, 205, 205), false);
274 initRGB("cyan4", makeInt(0, 139, 139), false);
275 initRGB("darkblue", makeInt(0, 0, 139));
276 initRGB("darkcyan", makeInt(0, 139, 139));
277 initRGB("darkgoldenrod", makeInt(184, 134, 11));
278 initRGB("darkgoldenrod1", makeInt(255, 185, 15), false);
279 initRGB("darkgoldenrod2", makeInt(238, 173, 14), false);
280 initRGB("darkgoldenrod3", makeInt(205, 149, 12), false);
281 initRGB("darkgoldenrod4", makeInt(139, 101, 8), false);
282 initRGB("darkgray", makeInt(169, 169, 169));
283 initRGB("darkgreen", makeInt(0, 100, 0));
284 initRGB("darkgrey", makeInt(169, 169, 169), false);
285 initRGB("darkkhaki", makeInt(189, 183, 107));
286 initRGB("darkmagenta", makeInt(139, 0, 139));
287 initRGB("darkolivegreen", makeInt(85, 107, 47));
288 initRGB("darkolivegreen1", makeInt(202, 255, 112), false);
289 initRGB("darkolivegreen2", makeInt(188, 238, 104), false);
290 initRGB("darkolivegreen3", makeInt(162, 205, 90), false);
291 initRGB("darkolivegreen4", makeInt(110, 139, 61), false);
292 initRGB("darkorange", makeInt(255, 140, 0));
293 initRGB("darkorange1", makeInt(255, 127, 0), false);
294 initRGB("darkorange2", makeInt(238, 118, 0), false);
295 initRGB("darkorange3", makeInt(205, 102, 0), false);
296 initRGB("darkorange4", makeInt(139, 69, 0), false);
297 initRGB("darkorchid", makeInt(153, 50, 204));
298 initRGB("darkorchid1", makeInt(191, 62, 255), false);
299 initRGB("darkorchid2", makeInt(178, 58, 238), false);
300 initRGB("darkorchid3", makeInt(154, 50, 205), false);
301 initRGB("darkorchid4", makeInt(104, 34, 139), false);
302 initRGB("darkred", makeInt(139, 0, 0));
303 initRGB("darksalmon", makeInt(233, 150, 122));
304 initRGB("darkseagreen", makeInt(143, 188, 143));
305 initRGB("darkseagreen1", makeInt(193, 255, 193), false);
306 initRGB("darkseagreen2", makeInt(180, 238, 180), false);
307 initRGB("darkseagreen3", makeInt(155, 205, 155), false);
308 initRGB("darkseagreen4", makeInt(105, 139, 105), false);
309 initRGB("darkslateblue", makeInt(72, 61, 139));
310 initRGB("darkslategray", makeInt(47, 79, 79));
311 initRGB("darkslategray1", makeInt(151, 255, 255), false);
312 initRGB("darkslategray2", makeInt(141, 238, 238), false);
313 initRGB("darkslategray3", makeInt(121, 205, 205), false);
314 initRGB("darkslategray4", makeInt(82, 139, 139), false);
315 initRGB("darkslategrey", makeInt(47, 79, 79), false);
316 initRGB("darkturquoise", makeInt(0, 206, 209));
317 initRGB("darkviolet", makeInt(148, 0, 211));
318 initRGB("deeppink", makeInt(255, 20, 147));
319 initRGB("deeppink1", makeInt(255, 20, 147), false);
320 initRGB("deeppink2", makeInt(238, 18, 137), false);
321 initRGB("deeppink3", makeInt(205, 16, 118), false);
322 initRGB("deeppink4", makeInt(139, 10, 80), false);
323 initRGB("deepskyblue", makeInt(0, 191, 255));
324 initRGB("deepskyblue1", makeInt(0, 191, 255), false);
325 initRGB("deepskyblue2", makeInt(0, 178, 238), false);
326 initRGB("deepskyblue3", makeInt(0, 154, 205), false);
327 initRGB("deepskyblue4", makeInt(0, 104, 139), false);
328 initRGB("dimgray", makeInt(105, 105, 105));
329 initRGB("dimgrey", makeInt(105, 105, 105), false);
330 initRGB("dodgerblue", makeInt(30, 144, 255));
331 initRGB("dodgerblue1", makeInt(30, 144, 255), false);
332 initRGB("dodgerblue2", makeInt(28, 134, 238), false);
333 initRGB("dodgerblue3", makeInt(24, 116, 205), false);
334 initRGB("dodgerblue4", makeInt(16, 78, 139), false);
335 initRGB("firebrick", makeInt(178, 34, 34));
336 initRGB("firebrick1", makeInt(255, 48, 48), false);
337 initRGB("firebrick2", makeInt(238, 44, 44), false);
338 initRGB("firebrick3", makeInt(205, 38, 38), false);
339 initRGB("firebrick4", makeInt(139, 26, 26), false);
340 initRGB("floralwhite", makeInt(255, 250, 240));
341 initRGB("forestgreen", makeInt(34, 139, 34));
342 initRGB("gainsboro", makeInt(220, 220, 220));
343 initRGB("ghostwhite", makeInt(248, 248, 255));
344 initRGB("gold", makeInt(255, 215, 0));
345 initRGB("gold1", makeInt(255, 215, 0), false);
346 initRGB("gold2", makeInt(238, 201, 0), false);
347 initRGB("gold3", makeInt(205, 173, 0), false);
348 initRGB("gold4", makeInt(139, 117, 0), false);
349 initRGB("goldenrod", makeInt(218, 165, 32));
350 initRGB("goldenrod1", makeInt(255, 193, 37), false);
351 initRGB("goldenrod2", makeInt(238, 180, 34), false);
352 initRGB("goldenrod3", makeInt(205, 155, 29), false);
353 initRGB("goldenrod4", makeInt(139, 105, 20), false);
354 initRGB("green", makeInt(0, 255, 0));
355 initRGB("green1", makeInt(0, 255, 0), false);
356 initRGB("green2", makeInt(0, 238, 0), false);
357 initRGB("green3", makeInt(0, 205, 0), false);
358 initRGB("green4", makeInt(0, 139, 0), false);
359 initRGB("greenyellow", makeInt(173, 255, 47));
360 initRGB("gray", makeInt(190, 190, 190));
361 initRGB("grey", makeInt(190, 190, 190), false);
362 initRGB("gray0", makeInt(0, 0, 0), false);
363 initRGB("grey0", makeInt(0, 0, 0), false);
364 initRGB("gray1", makeInt(3, 3, 3), false);
365 initRGB("grey1", makeInt(3, 3, 3), false);
366 initRGB("gray2", makeInt(5, 5, 5), false);
367 initRGB("grey2", makeInt(5, 5, 5), false);
368 initRGB("gray3", makeInt(8, 8, 8), false);
369 initRGB("grey3", makeInt(8, 8, 8), false);
370 initRGB("gray4", makeInt(10, 10, 10), false);
371 initRGB("grey4", makeInt(10, 10, 10), false);
372 initRGB("gray5", makeInt(13, 13, 13), false);
373 initRGB("grey5", makeInt(13, 13, 13), false);
374 initRGB("gray6", makeInt(15, 15, 15), false);
375 initRGB("grey6", makeInt(15, 15, 15), false);
376 initRGB("gray7", makeInt(18, 18, 18), false);
377 initRGB("grey7", makeInt(18, 18, 18), false);
378 initRGB("gray8", makeInt(20, 20, 20), false);
379 initRGB("grey8", makeInt(20, 20, 20), false);
380 initRGB("gray9", makeInt(23, 23, 23), false);
381 initRGB("grey9", makeInt(23, 23, 23), false);
382 initRGB("gray10", makeInt(26, 26, 26), false);
383 initRGB("grey10", makeInt(26, 26, 26), false);
384 initRGB("gray11", makeInt(28, 28, 28), false);
385 initRGB("grey11", makeInt(28, 28, 28), false);
386 initRGB("gray12", makeInt(31, 31, 31), false);
387 initRGB("grey12", makeInt(31, 31, 31), false);
388 initRGB("gray13", makeInt(33, 33, 33), false);
389 initRGB("grey13", makeInt(33, 33, 33), false);
390 initRGB("gray14", makeInt(36, 36, 36), false);
391 initRGB("grey14", makeInt(36, 36, 36), false);
392 initRGB("gray15", makeInt(38, 38, 38), false);
393 initRGB("grey15", makeInt(38, 38, 38), false);
394 initRGB("gray16", makeInt(41, 41, 41), false);
395 initRGB("grey16", makeInt(41, 41, 41), false);
396 initRGB("gray17", makeInt(43, 43, 43), false);
397 initRGB("grey17", makeInt(43, 43, 43), false);
398 initRGB("gray18", makeInt(46, 46, 46), false);
399 initRGB("grey18", makeInt(46, 46, 46), false);
400 initRGB("gray19", makeInt(48, 48, 48), false);
401 initRGB("grey19", makeInt(48, 48, 48), false);
402 initRGB("gray20", makeInt(51, 51, 51), false);
403 initRGB("grey20", makeInt(51, 51, 51), false);
404 initRGB("gray21", makeInt(54, 54, 54), false);
405 initRGB("grey21", makeInt(54, 54, 54), false);
406 initRGB("gray22", makeInt(56, 56, 56), false);
407 initRGB("grey22", makeInt(56, 56, 56), false);
408 initRGB("gray23", makeInt(59, 59, 59), false);
409 initRGB("grey23", makeInt(59, 59, 59), false);
410 initRGB("gray24", makeInt(61, 61, 61), false);
411 initRGB("grey24", makeInt(61, 61, 61), false);
412 initRGB("gray25", makeInt(64, 64, 64), false);
413 initRGB("grey25", makeInt(64, 64, 64), false);
414 initRGB("gray26", makeInt(66, 66, 66), false);
415 initRGB("grey26", makeInt(66, 66, 66), false);
416 initRGB("gray27", makeInt(69, 69, 69), false);
417 initRGB("grey27", makeInt(69, 69, 69), false);
418 initRGB("gray28", makeInt(71, 71, 71), false);
419 initRGB("grey28", makeInt(71, 71, 71), false);
420 initRGB("gray29", makeInt(74, 74, 74), false);
421 initRGB("grey29", makeInt(74, 74, 74), false);
422 initRGB("gray30", makeInt(77, 77, 77), false);
423 initRGB("grey30", makeInt(77, 77, 77), false);
424 initRGB("gray31", makeInt(79, 79, 79), false);
425 initRGB("grey31", makeInt(79, 79, 79), false);
426 initRGB("gray32", makeInt(82, 82, 82), false);
427 initRGB("grey32", makeInt(82, 82, 82), false);
428 initRGB("gray33", makeInt(84, 84, 84), false);
429 initRGB("grey33", makeInt(84, 84, 84), false);
430 initRGB("gray34", makeInt(87, 87, 87), false);
431 initRGB("grey34", makeInt(87, 87, 87), false);
432 initRGB("gray35", makeInt(89, 89, 89), false);
433 initRGB("grey35", makeInt(89, 89, 89), false);
434 initRGB("gray36", makeInt(92, 92, 92), false);
435 initRGB("grey36", makeInt(92, 92, 92), false);
436 initRGB("gray37", makeInt(94, 94, 94), false);
437 initRGB("grey37", makeInt(94, 94, 94), false);
438 initRGB("gray38", makeInt(97, 97, 97), false);
439 initRGB("grey38", makeInt(97, 97, 97), false);
440 initRGB("gray39", makeInt(99, 99, 99), false);
441 initRGB("grey39", makeInt(99, 99, 99), false);
442 initRGB("gray40", makeInt(102, 102, 102), false);
443 initRGB("grey40", makeInt(102, 102, 102), false);
444 initRGB("gray41", makeInt(105, 105, 105), false);
445 initRGB("grey41", makeInt(105, 105, 105), false);
446 initRGB("gray42", makeInt(107, 107, 107), false);
447 initRGB("grey42", makeInt(107, 107, 107), false);
448 initRGB("gray43", makeInt(110, 110, 110), false);
449 initRGB("grey43", makeInt(110, 110, 110), false);
450 initRGB("gray44", makeInt(112, 112, 112), false);
451 initRGB("grey44", makeInt(112, 112, 112), false);
452 initRGB("gray45", makeInt(115, 115, 115), false);
453 initRGB("grey45", makeInt(115, 115, 115), false);
454 initRGB("gray46", makeInt(117, 117, 117), false);
455 initRGB("grey46", makeInt(117, 117, 117), false);
456 initRGB("gray47", makeInt(120, 120, 120), false);
457 initRGB("grey47", makeInt(120, 120, 120), false);
458 initRGB("gray48", makeInt(122, 122, 122), false);
459 initRGB("grey48", makeInt(122, 122, 122), false);
460 initRGB("gray49", makeInt(125, 125, 125), false);
461 initRGB("grey49", makeInt(125, 125, 125), false);
462 initRGB("gray50", makeInt(127, 127, 127), false);
463 initRGB("grey50", makeInt(127, 127, 127), false);
464 initRGB("gray51", makeInt(130, 130, 130), false);
465 initRGB("grey51", makeInt(130, 130, 130), false);
466 initRGB("gray52", makeInt(133, 133, 133), false);
467 initRGB("grey52", makeInt(133, 133, 133), false);
468 initRGB("gray53", makeInt(135, 135, 135), false);
469 initRGB("grey53", makeInt(135, 135, 135), false);
470 initRGB("gray54", makeInt(138, 138, 138), false);
471 initRGB("grey54", makeInt(138, 138, 138), false);
472 initRGB("gray55", makeInt(140, 140, 140), false);
473 initRGB("grey55", makeInt(140, 140, 140), false);
474 initRGB("gray56", makeInt(143, 143, 143), false);
475 initRGB("grey56", makeInt(143, 143, 143), false);
476 initRGB("gray57", makeInt(145, 145, 145), false);
477 initRGB("grey57", makeInt(145, 145, 145), false);
478 initRGB("gray58", makeInt(148, 148, 148), false);
479 initRGB("grey58", makeInt(148, 148, 148), false);
480 initRGB("gray59", makeInt(150, 150, 150), false);
481 initRGB("grey59", makeInt(150, 150, 150), false);
482 initRGB("gray60", makeInt(153, 153, 153), false);
483 initRGB("grey60", makeInt(153, 153, 153), false);
484 initRGB("gray61", makeInt(156, 156, 156), false);
485 initRGB("grey61", makeInt(156, 156, 156), false);
486 initRGB("gray62", makeInt(158, 158, 158), false);
487 initRGB("grey62", makeInt(158, 158, 158), false);
488 initRGB("gray63", makeInt(161, 161, 161), false);
489 initRGB("grey63", makeInt(161, 161, 161), false);
490 initRGB("gray64", makeInt(163, 163, 163), false);
491 initRGB("grey64", makeInt(163, 163, 163), false);
492 initRGB("gray65", makeInt(166, 166, 166), false);
493 initRGB("grey65", makeInt(166, 166, 166), false);
494 initRGB("gray66", makeInt(168, 168, 168), false);
495 initRGB("grey66", makeInt(168, 168, 168), false);
496 initRGB("gray67", makeInt(171, 171, 171), false);
497 initRGB("grey67", makeInt(171, 171, 171), false);
498 initRGB("gray68", makeInt(173, 173, 173), false);
499 initRGB("grey68", makeInt(173, 173, 173), false);
500 initRGB("gray69", makeInt(176, 176, 176), false);
501 initRGB("grey69", makeInt(176, 176, 176), false);
502 initRGB("gray70", makeInt(179, 179, 179), false);
503 initRGB("grey70", makeInt(179, 179, 179), false);
504 initRGB("gray71", makeInt(181, 181, 181), false);
505 initRGB("grey71", makeInt(181, 181, 181), false);
506 initRGB("gray72", makeInt(184, 184, 184), false);
507 initRGB("grey72", makeInt(184, 184, 184), false);
508 initRGB("gray73", makeInt(186, 186, 186), false);
509 initRGB("grey73", makeInt(186, 186, 186), false);
510 initRGB("gray74", makeInt(189, 189, 189), false);
511 initRGB("grey74", makeInt(189, 189, 189), false);
512 initRGB("gray75", makeInt(191, 191, 191), false);
513 initRGB("grey75", makeInt(191, 191, 191), false);
514 initRGB("gray76", makeInt(194, 194, 194), false);
515 initRGB("grey76", makeInt(194, 194, 194), false);
516 initRGB("gray77", makeInt(196, 196, 196), false);
517 initRGB("grey77", makeInt(196, 196, 196), false);
518 initRGB("gray78", makeInt(199, 199, 199), false);
519 initRGB("grey78", makeInt(199, 199, 199), false);
520 initRGB("gray79", makeInt(201, 201, 201), false);
521 initRGB("grey79", makeInt(201, 201, 201), false);
522 initRGB("gray80", makeInt(204, 204, 204), false);
523 initRGB("grey80", makeInt(204, 204, 204), false);
524 initRGB("gray81", makeInt(207, 207, 207), false);
525 initRGB("grey81", makeInt(207, 207, 207), false);
526 initRGB("gray82", makeInt(209, 209, 209), false);
527 initRGB("grey82", makeInt(209, 209, 209), false);
528 initRGB("gray83", makeInt(212, 212, 212), false);
529 initRGB("grey83", makeInt(212, 212, 212), false);
530 initRGB("gray84", makeInt(214, 214, 214), false);
531 initRGB("grey84", makeInt(214, 214, 214), false);
532 initRGB("gray85", makeInt(217, 217, 217), false);
533 initRGB("grey85", makeInt(217, 217, 217), false);
534 initRGB("gray86", makeInt(219, 219, 219), false);
535 initRGB("grey86", makeInt(219, 219, 219), false);
536 initRGB("gray87", makeInt(222, 222, 222), false);
537 initRGB("grey87", makeInt(222, 222, 222), false);
538 initRGB("gray88", makeInt(224, 224, 224), false);
539 initRGB("grey88", makeInt(224, 224, 224), false);
540 initRGB("gray89", makeInt(227, 227, 227), false);
541 initRGB("grey89", makeInt(227, 227, 227), false);
542 initRGB("gray90", makeInt(229, 229, 229), false);
543 initRGB("grey90", makeInt(229, 229, 229), false);
544 initRGB("gray91", makeInt(232, 232, 232), false);
545 initRGB("grey91", makeInt(232, 232, 232), false);
546 initRGB("gray92", makeInt(235, 235, 235), false);
547 initRGB("grey92", makeInt(235, 235, 235), false);
548 initRGB("gray93", makeInt(237, 237, 237), false);
549 initRGB("grey93", makeInt(237, 237, 237), false);
550 initRGB("gray94", makeInt(240, 240, 240), false);
551 initRGB("grey94", makeInt(240, 240, 240), false);
552 initRGB("gray95", makeInt(242, 242, 242), false);
553 initRGB("grey95", makeInt(242, 242, 242), false);
554 initRGB("gray96", makeInt(245, 245, 245), false);
555 initRGB("grey96", makeInt(245, 245, 245), false);
556 initRGB("gray97", makeInt(247, 247, 247), false);
557 initRGB("grey97", makeInt(247, 247, 247), false);
558 initRGB("gray98", makeInt(250, 250, 250), false);
559 initRGB("grey98", makeInt(250, 250, 250), false);
560 initRGB("gray99", makeInt(252, 252, 252), false);
561 initRGB("grey99", makeInt(252, 252, 252), false);
562 initRGB("gray100", makeInt(255, 255, 255), false);
563 initRGB("grey100", makeInt(255, 255, 255), false);
564 initRGB("honeydew", makeInt(240, 255, 240));
565 initRGB("honeydew1", makeInt(240, 255, 240), false);
566 initRGB("honeydew2", makeInt(224, 238, 224), false);
567 initRGB("honeydew3", makeInt(193, 205, 193), false);
568 initRGB("honeydew4", makeInt(131, 139, 131), false);
569 initRGB("hotpink", makeInt(255, 105, 180));
570 initRGB("hotpink1", makeInt(255, 110, 180), false);
571 initRGB("hotpink2", makeInt(238, 106, 167), false);
572 initRGB("hotpink3", makeInt(205, 96, 144), false);
573 initRGB("hotpink4", makeInt(139, 58, 98), false);
574 initRGB("indianred", makeInt(205, 92, 92));
575 initRGB("indianred1", makeInt(255, 106, 106), false);
576 initRGB("indianred2", makeInt(238, 99, 99), false);
577 initRGB("indianred3", makeInt(205, 85, 85), false);
578 initRGB("indianred4", makeInt(139, 58, 58), false);
579 initRGB("indigo", makeInt(75, 0, 130));
580 initRGB("ivory", makeInt(255, 255, 240));
581 initRGB("ivory1", makeInt(255, 255, 240), false);
582 initRGB("ivory2", makeInt(238, 238, 224), false);
583 initRGB("ivory3", makeInt(205, 205, 193), false);
584 initRGB("ivory4", makeInt(139, 139, 131), false);
585 initRGB("khaki", makeInt(240, 230, 140));
586 initRGB("khaki1", makeInt(255, 246, 143), false);
587 initRGB("khaki2", makeInt(238, 230, 133), false);
588 initRGB("khaki3", makeInt(205, 198, 115), false);
589 initRGB("khaki4", makeInt(139, 134, 78), false);
590 initRGB("lavender", makeInt(230, 230, 250));
591 initRGB("lavenderblush", makeInt(255, 240, 245));
592 initRGB("lavenderblush1", makeInt(255, 240, 245), false);
593 initRGB("lavenderblush2", makeInt(238, 224, 229), false);
594 initRGB("lavenderblush3", makeInt(205, 193, 197), false);
595 initRGB("lavenderblush4", makeInt(139, 131, 134), false);
596 initRGB("lawngreen", makeInt(124, 252, 0));
597 initRGB("lemonchiffon", makeInt(255, 250, 205));
598 initRGB("lemonchiffon1", makeInt(255, 250, 205), false);
599 initRGB("lemonchiffon2", makeInt(238, 233, 191), false);
600 initRGB("lemonchiffon3", makeInt(205, 201, 165), false);
601 initRGB("lemonchiffon4", makeInt(139, 137, 112), false);
602 initRGB("lightblue", makeInt(173, 216, 230));
603 initRGB("lightblue1", makeInt(191, 239, 255), false);
604 initRGB("lightblue2", makeInt(178, 223, 238), false);
605 initRGB("lightblue3", makeInt(154, 192, 205), false);
606 initRGB("lightblue4", makeInt(104, 131, 139), false);
607 initRGB("lightcoral", makeInt(240, 128, 128));
608 initRGB("lightcyan", makeInt(224, 255, 255));
609 initRGB("lightcyan1", makeInt(224, 255, 255), false);
610 initRGB("lightcyan2", makeInt(209, 238, 238), false);
611 initRGB("lightcyan3", makeInt(180, 205, 205), false);
612 initRGB("lightcyan4", makeInt(122, 139, 139), false);
613 initRGB("lightgoldenrod", makeInt(238, 221, 130));
614 initRGB("lightgoldenrod1", makeInt(255, 236, 139), false);
615 initRGB("lightgoldenrod2", makeInt(238, 220, 130), false);
616 initRGB("lightgoldenrod3", makeInt(205, 190, 112), false);
617 initRGB("lightgoldenrod4", makeInt(139, 129, 76), false);
618 initRGB("lightgoldenrodyellow", makeInt(250, 250, 210));
619 initRGB("lightgray", makeInt(211, 211, 211));
620 initRGB("lightgreen", makeInt(144, 238, 144));
621 initRGB("lightgrey", makeInt(211, 211, 211), false);
622 initRGB("lightpink", makeInt(255, 182, 193));
623 initRGB("lightpink1", makeInt(255, 174, 185), false);
624 initRGB("lightpink2", makeInt(238, 162, 173), false);
625 initRGB("lightpink3", makeInt(205, 140, 149), false);
626 initRGB("lightpink4", makeInt(139, 95, 101), false);
627 initRGB("lightsalmon", makeInt(255, 160, 122));
628 initRGB("lightsalmon1", makeInt(255, 160, 122), false);
629 initRGB("lightsalmon2", makeInt(238, 149, 114), false);
630 initRGB("lightsalmon3", makeInt(205, 129, 98), false);
631 initRGB("lightsalmon4", makeInt(139, 87, 66), false);
632 initRGB("lightseagreen", makeInt(32, 178, 170));
633 initRGB("lightskyblue", makeInt(135, 206, 250));
634 initRGB("lightskyblue1", makeInt(176, 226, 255), false);
635 initRGB("lightskyblue2", makeInt(164, 211, 238), false);
636 initRGB("lightskyblue3", makeInt(141, 182, 205), false);
637 initRGB("lightskyblue4", makeInt(96, 123, 139), false);
638 initRGB("lightslateblue", makeInt(132, 112, 255));
639 initRGB("lightslategray", makeInt(119, 136, 153));
640 initRGB("lightslategrey", makeInt(119, 136, 153), false);
641 initRGB("lightsteelblue", makeInt(176, 196, 222));
642 initRGB("lightsteelblue1", makeInt(202, 225, 255), false);
643 initRGB("lightsteelblue2", makeInt(188, 210, 238), false);
644 initRGB("lightsteelblue3", makeInt(162, 181, 205), false);
645 initRGB("lightsteelblue4", makeInt(110, 123, 139), false);
646 initRGB("lightyellow", makeInt(255, 255, 224));
647 initRGB("lightyellow1", makeInt(255, 255, 224), false);
648 initRGB("lightyellow2", makeInt(238, 238, 209), false);
649 initRGB("lightyellow3", makeInt(205, 205, 180), false);
650 initRGB("lightyellow4", makeInt(139, 139, 122), false);
651 initRGB("limegreen", makeInt(50, 205, 50));
652 initRGB("linen", makeInt(250, 240, 230));
653 initRGB("magenta", makeInt(255, 0, 255));
654 initRGB("magenta1", makeInt(255, 0, 255), false);
655 initRGB("magenta2", makeInt(238, 0, 238), false);
656 initRGB("magenta3", makeInt(205, 0, 205), false);
657 initRGB("magenta4", makeInt(139, 0, 139), false);
658 initRGB("maroon", makeInt(176, 48, 96));
659 initRGB("maroon1", makeInt(255, 52, 179), false);
660 initRGB("maroon2", makeInt(238, 48, 167), false);
661 initRGB("maroon3", makeInt(205, 41, 144), false);
662 initRGB("maroon4", makeInt(139, 28, 98), false);
663 initRGB("mediumaquamarine", makeInt(102, 205, 170));
664 initRGB("mediumblue", makeInt(0, 0, 205));
665 initRGB("mediumorchid", makeInt(186, 85, 211));
666 initRGB("mediumorchid1", makeInt(224, 102, 255), false);
667 initRGB("mediumorchid2", makeInt(209, 95, 238), false);
668 initRGB("mediumorchid3", makeInt(180, 82, 205), false);
669 initRGB("mediumorchid4", makeInt(122, 55, 139), false);
670 initRGB("mediumpurple", makeInt(147, 112, 219));
671 initRGB("mediumpurple1", makeInt(171, 130, 255), false);
672 initRGB("mediumpurple2", makeInt(159, 121, 238), false);
673 initRGB("mediumpurple3", makeInt(137, 104, 205), false);
674 initRGB("mediumpurple4", makeInt(93, 71, 139), false);
675 initRGB("mediumseagreen", makeInt(60, 179, 113));
676 initRGB("mediumslateblue", makeInt(123, 104, 238));
677 initRGB("mediumspringgreen", makeInt(0, 250, 154));
678 initRGB("mediumturquoise", makeInt(72, 209, 204));
679 initRGB("mediumvioletred", makeInt(199, 21, 133));
680 initRGB("midnightblue", makeInt(25, 25, 112));
681 initRGB("mintcream", makeInt(245, 255, 250));
682 initRGB("mistyrose", makeInt(255, 228, 225));
683 initRGB("mistyrose1", makeInt(255, 228, 225), false);
684 initRGB("mistyrose2", makeInt(238, 213, 210), false);
685 initRGB("mistyrose3", makeInt(205, 183, 181), false);
686 initRGB("mistyrose4", makeInt(139, 125, 123), false);
687 initRGB("moccasin", makeInt(255, 228, 181));
688 initRGB("navajowhite", makeInt(255, 222, 173));
689 initRGB("navajowhite1", makeInt(255, 222, 173), false);
690 initRGB("navajowhite2", makeInt(238, 207, 161), false);
691 initRGB("navajowhite3", makeInt(205, 179, 139), false);
692 initRGB("navajowhite4", makeInt(139, 121, 94), false);
693 initRGB("navy", makeInt(0, 0, 128));
694 initRGB("navyblue", makeInt(0, 0, 128), false);
695 initRGB("oldlace", makeInt(253, 245, 230));
696 initRGB("olivedrab", makeInt(107, 142, 35));
697 initRGB("olivedrab1", makeInt(192, 255, 62), false);
698 initRGB("olivedrab2", makeInt(179, 238, 58), false);
699 initRGB("olivedrab3", makeInt(154, 205, 50), false);
700 initRGB("olivedrab4", makeInt(105, 139, 34), false);
701 initRGB("orange", makeInt(255, 165, 0));
702 initRGB("orange1", makeInt(255, 165, 0), false);
703 initRGB("orange2", makeInt(238, 154, 0), false);
704 initRGB("orange3", makeInt(205, 133, 0), false);
705 initRGB("orange4", makeInt(139, 90, 0), false);
706 initRGB("orangered", makeInt(255, 69, 0));
707 initRGB("orangered1", makeInt(255, 69, 0), false);
708 initRGB("orangered2", makeInt(238, 64, 0), false);
709 initRGB("orangered3", makeInt(205, 55, 0), false);
710 initRGB("orangered4", makeInt(139, 37, 0), false);
711 initRGB("orchid", makeInt(218, 112, 214));
712 initRGB("orchid1", makeInt(255, 131, 250), false);
713 initRGB("orchid2", makeInt(238, 122, 233), false);
714 initRGB("orchid3", makeInt(205, 105, 201), false);
715 initRGB("orchid4", makeInt(139, 71, 137), false);
716 initRGB("palegoldenrod", makeInt(238, 232, 170));
717 initRGB("palegreen", makeInt(152, 251, 152));
718 initRGB("palegreen1", makeInt(154, 255, 154), false);
719 initRGB("palegreen2", makeInt(144, 238, 144), false);
720 initRGB("palegreen3", makeInt(124, 205, 124), false);
721 initRGB("palegreen4", makeInt(84, 139, 84), false);
722 initRGB("paleturquoise", makeInt(175, 238, 238));
723 initRGB("paleturquoise1", makeInt(187, 255, 255), false);
724 initRGB("paleturquoise2", makeInt(174, 238, 238), false);
725 initRGB("paleturquoise3", makeInt(150, 205, 205), false);
726 initRGB("paleturquoise4", makeInt(102, 139, 139), false);
727 initRGB("palevioletred", makeInt(219, 112, 147));
728 initRGB("palevioletred1", makeInt(255, 130, 171), false);
729 initRGB("palevioletred2", makeInt(238, 121, 159), false);
730 initRGB("palevioletred3", makeInt(205, 104, 137), false);
731 initRGB("palevioletred4", makeInt(139, 71, 93), false);
732 initRGB("papayawhip", makeInt(255, 239, 213));
733 initRGB("peachpuff", makeInt(255, 218, 185));
734 initRGB("peachpuff1", makeInt(255, 218, 185), false);
735 initRGB("peachpuff2", makeInt(238, 203, 173), false);
736 initRGB("peachpuff3", makeInt(205, 175, 149), false);
737 initRGB("peachpuff4", makeInt(139, 119, 101), false);
738 initRGB("peru", makeInt(205, 133, 63));
739 initRGB("pink", makeInt(255, 192, 203));
740 initRGB("pink1", makeInt(255, 181, 197), false);
741 initRGB("pink2", makeInt(238, 169, 184), false);
742 initRGB("pink3", makeInt(205, 145, 158), false);
743 initRGB("pink4", makeInt(139, 99, 108), false);
744 initRGB("plum", makeInt(221, 160, 221));
745 initRGB("plum1", makeInt(255, 187, 255), false);
746 initRGB("plum2", makeInt(238, 174, 238), false);
747 initRGB("plum3", makeInt(205, 150, 205), false);
748 initRGB("plum4", makeInt(139, 102, 139), false);
749 initRGB("powderblue", makeInt(176, 224, 230));
750 initRGB("purple", makeInt(160, 32, 240));
751 initRGB("purple1", makeInt(155, 48, 255), false);
752 initRGB("purple2", makeInt(145, 44, 238), false);
753 initRGB("purple3", makeInt(125, 38, 205), false);
754 initRGB("purple4", makeInt(85, 26, 139), false);
755 initRGB("red", makeInt(255, 0, 0));
756 initRGB("red1", makeInt(255, 0, 0), false);
757 initRGB("red2", makeInt(238, 0, 0), false);
758 initRGB("red3", makeInt(205, 0, 0), false);
759 initRGB("red4", makeInt(139, 0, 0), false);
760 initRGB("rosybrown", makeInt(188, 143, 143));
761 initRGB("rosybrown1", makeInt(255, 193, 193), false);
762 initRGB("rosybrown2", makeInt(238, 180, 180), false);
763 initRGB("rosybrown3", makeInt(205, 155, 155), false);
764 initRGB("rosybrown4", makeInt(139, 105, 105), false);
765 initRGB("royalblue", makeInt(65, 105, 225));
766 initRGB("royalblue1", makeInt(72, 118, 255), false);
767 initRGB("royalblue2", makeInt(67, 110, 238), false);
768 initRGB("royalblue3", makeInt(58, 95, 205), false);
769 initRGB("royalblue4", makeInt(39, 64, 139), false);
770 initRGB("saddlebrown", makeInt(139, 69, 19));
771 initRGB("salmon", makeInt(250, 128, 114));
772 initRGB("salmon1", makeInt(255, 140, 105), false);
773 initRGB("salmon2", makeInt(238, 130, 98), false);
774 initRGB("salmon3", makeInt(205, 112, 84), false);
775 initRGB("salmon4", makeInt(139, 76, 57), false);
776 initRGB("sandybrown", makeInt(244, 164, 96));
777 initRGB("seagreen", makeInt(46, 139, 87));
778 initRGB("seagreen1", makeInt(84, 255, 159), false);
779 initRGB("seagreen2", makeInt(78, 238, 148), false);
780 initRGB("seagreen3", makeInt(67, 205, 128), false);
781 initRGB("seagreen4", makeInt(46, 139, 87), false);
782 initRGB("seashell", makeInt(255, 245, 238));
783 initRGB("seashell1", makeInt(255, 245, 238), false);
784 initRGB("seashell2", makeInt(238, 229, 222), false);
785 initRGB("seashell3", makeInt(205, 197, 191), false);
786 initRGB("seashell4", makeInt(139, 134, 130), false);
787 initRGB("sgiindigo2", makeInt(33, 136, 104), false);
788 initRGB("sienna", makeInt(160, 82, 45));
789 initRGB("sienna1", makeInt(255, 130, 71), false);
790 initRGB("sienna2", makeInt(238, 121, 66), false);
791 initRGB("sienna3", makeInt(205, 104, 57), false);
792 initRGB("sienna4", makeInt(139, 71, 38), false);
793 initRGB("skyblue", makeInt(135, 206, 235));
794 initRGB("skyblue1", makeInt(135, 206, 255), false);
795 initRGB("skyblue2", makeInt(126, 192, 238), false);
796 initRGB("skyblue3", makeInt(108, 166, 205), false);
797 initRGB("skyblue4", makeInt(74, 112, 139), false);
798 initRGB("slateblue", makeInt(106, 90, 205));
799 initRGB("slateblue1", makeInt(131, 111, 255), false);
800 initRGB("slateblue2", makeInt(122, 103, 238), false);
801 initRGB("slateblue3", makeInt(105, 89, 205), false);
802 initRGB("slateblue4", makeInt(71, 60, 139), false);
803 initRGB("slategray", makeInt(112, 128, 144));
804 initRGB("slategray1", makeInt(198, 226, 255), false);
805 initRGB("slategray2", makeInt(185, 211, 238), false);
806 initRGB("slategray3", makeInt(159, 182, 205), false);
807 initRGB("slategray4", makeInt(108, 123, 139), false);
808 initRGB("slategrey", makeInt(112, 128, 144), false);
809 initRGB("snow", makeInt(255, 250, 250));
810 initRGB("snow1", makeInt(255, 250, 250), false);
811 initRGB("snow2", makeInt(238, 233, 233), false);
812 initRGB("snow3", makeInt(205, 201, 201), false);
813 initRGB("snow4", makeInt(139, 137, 137), false);
814 initRGB("springgreen", makeInt(0, 255, 127));
815 initRGB("springgreen1", makeInt(0, 255, 127), false);
816 initRGB("springgreen2", makeInt(0, 238, 118), false);
817 initRGB("springgreen3", makeInt(0, 205, 102), false);
818 initRGB("springgreen4", makeInt(0, 139, 69), false);
819 initRGB("steelblue", makeInt(70, 130, 180));
820 initRGB("steelblue1", makeInt(99, 184, 255), false);
821 initRGB("steelblue2", makeInt(92, 172, 238), false);
822 initRGB("steelblue3", makeInt(79, 148, 205), false);
823 initRGB("steelblue4", makeInt(54, 100, 139), false);
824 initRGB("tan", makeInt(210, 180, 140));
825 initRGB("tan1", makeInt(255, 165, 79), false);
826 initRGB("tan2", makeInt(238, 154, 73), false);
827 initRGB("tan3", makeInt(205, 133, 63), false);
828 initRGB("tan4", makeInt(139, 90, 43), false);
829 initRGB("thistle", makeInt(216, 191, 216));
830 initRGB("thistle1", makeInt(255, 225, 255), false);
831 initRGB("thistle2", makeInt(238, 210, 238), false);
832 initRGB("thistle3", makeInt(205, 181, 205), false);
833 initRGB("thistle4", makeInt(139, 123, 139), false);
834 initRGB("tomato", makeInt(255, 99, 71));
835 initRGB("tomato1", makeInt(255, 99, 71), false);
836 initRGB("tomato2", makeInt(238, 92, 66), false);
837 initRGB("tomato3", makeInt(205, 79, 57), false);
838 initRGB("tomato4", makeInt(139, 54, 38), false);
839 initRGB("turquoise", makeInt(64, 224, 208));
840 initRGB("turquoise1", makeInt(0, 245, 255), false);
841 initRGB("turquoise2", makeInt(0, 229, 238), false);
842 initRGB("turquoise3", makeInt(0, 197, 205), false);
843 initRGB("turquoise4", makeInt(0, 134, 139), false);
844 initRGB("violet", makeInt(238, 130, 238));
845 initRGB("violetred", makeInt(208, 32, 144));
846 initRGB("violetred1", makeInt(255, 62, 150), false);
847 initRGB("violetred2", makeInt(238, 58, 140), false);
848 initRGB("violetred3", makeInt(205, 50, 120), false);
849 initRGB("violetred4", makeInt(139, 34, 82), false);
850 initRGB("wheat", makeInt(245, 222, 179));
851 initRGB("wheat1", makeInt(255, 231, 186), false);
852 initRGB("wheat2", makeInt(238, 216, 174), false);
853 initRGB("wheat3", makeInt(205, 186, 150), false);
854 initRGB("wheat4", makeInt(139, 126, 102), false);
855 initRGB("white", makeInt(255, 255, 255));
856 initRGB("whitesmoke", makeInt(245, 245, 245));
857 initRGB("yellow", makeInt(255, 255, 0));
858 initRGB("yellow1", makeInt(255, 255, 0), false);
859 initRGB("yellow2", makeInt(238, 238, 0), false);
860 initRGB("yellow3", makeInt(205, 205, 0), false);
861 initRGB("yellow4", makeInt(139, 139, 0), false);
862 initRGB("yellowgreen", makeInt(154, 205, 50));
863 }
864
865 private static final int makeInt(int r, int g, int b) {
866 return (r << 16) | (g << 8) | b;
867 }
868
869 private static final void initRGB(String name, int value, boolean override) {
870 fCOLORVALUES.put(name, value);
871 if (override || fCOLORNAMES.get(value) == null)
872 fCOLORNAMES.put(value + 1, name);
873 }
874
875 private static final void initRGB(String name, int value) {
876 fCOLORVALUES.put(name, value);
877 fCOLORNAMES.put(value + 1, name);
878 }
879
880 ////////////////////////////////////////////////////////////////////////
881
882 }