Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }