1 |
/* $Header$ */ |
2 |
|
3 |
/* |
4 |
* xcolors.c -- |
5 |
* |
6 |
* This file contains the routines used to map from X color |
7 |
* names to RGB and pixel values. |
8 |
* |
9 |
* Copyright (c) 1996 by Sun Microsystems, Inc. |
10 |
* |
11 |
* See the file "license.terms" for information on usage and redistribution |
12 |
* of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
13 |
* |
14 |
* RCS: @(#) $Id: xcolors.c,v 1.1.1.1 2001/06/13 05:15:39 dtashley Exp $ |
15 |
*/ |
16 |
|
17 |
#include "tkInt.h" |
18 |
|
19 |
/* |
20 |
* Define an array that defines the mapping from color names to RGB values. |
21 |
* Note that this array must be kept sorted alphabetically so that the |
22 |
* binary search used in XParseColor will succeed. |
23 |
*/ |
24 |
|
25 |
typedef struct { |
26 |
char *name; |
27 |
unsigned char red; |
28 |
unsigned char green; |
29 |
unsigned char blue; |
30 |
} XColorEntry; |
31 |
|
32 |
static XColorEntry xColors[] = { |
33 |
"alice blue", 240, 248, 255, |
34 |
"AliceBlue", 240, 248, 255, |
35 |
"antique white", 250, 235, 215, |
36 |
"AntiqueWhite", 250, 235, 215, |
37 |
"AntiqueWhite1", 255, 239, 219, |
38 |
"AntiqueWhite2", 238, 223, 204, |
39 |
"AntiqueWhite3", 205, 192, 176, |
40 |
"AntiqueWhite4", 139, 131, 120, |
41 |
"aquamarine", 127, 255, 212, |
42 |
"aquamarine1", 127, 255, 212, |
43 |
"aquamarine2", 118, 238, 198, |
44 |
"aquamarine3", 102, 205, 170, |
45 |
"aquamarine4", 69, 139, 116, |
46 |
"azure", 240, 255, 255, |
47 |
"azure1", 240, 255, 255, |
48 |
"azure2", 224, 238, 238, |
49 |
"azure3", 193, 205, 205, |
50 |
"azure4", 131, 139, 139, |
51 |
"beige", 245, 245, 220, |
52 |
"bisque", 255, 228, 196, |
53 |
"bisque1", 255, 228, 196, |
54 |
"bisque2", 238, 213, 183, |
55 |
"bisque3", 205, 183, 158, |
56 |
"bisque4", 139, 125, 107, |
57 |
"black", 0, 0, 0, |
58 |
"blanched almond", 255, 235, 205, |
59 |
"BlanchedAlmond", 255, 235, 205, |
60 |
"blue", 0, 0, 255, |
61 |
"blue violet", 138, 43, 226, |
62 |
"blue1", 0, 0, 255, |
63 |
"blue2", 0, 0, 238, |
64 |
"blue3", 0, 0, 205, |
65 |
"blue4", 0, 0, 139, |
66 |
"BlueViolet", 138, 43, 226, |
67 |
"brown", 165, 42, 42, |
68 |
"brown1", 255, 64, 64, |
69 |
"brown2", 238, 59, 59, |
70 |
"brown3", 205, 51, 51, |
71 |
"brown4", 139, 35, 35, |
72 |
"burlywood", 222, 184, 135, |
73 |
"burlywood1", 255, 211, 155, |
74 |
"burlywood2", 238, 197, 145, |
75 |
"burlywood3", 205, 170, 125, |
76 |
"burlywood4", 139, 115, 85, |
77 |
"cadet blue", 95, 158, 160, |
78 |
"CadetBlue", 95, 158, 160, |
79 |
"CadetBlue1", 152, 245, 255, |
80 |
"CadetBlue2", 142, 229, 238, |
81 |
"CadetBlue3", 122, 197, 205, |
82 |
"CadetBlue4", 83, 134, 139, |
83 |
"chartreuse", 127, 255, 0, |
84 |
"chartreuse1", 127, 255, 0, |
85 |
"chartreuse2", 118, 238, 0, |
86 |
"chartreuse3", 102, 205, 0, |
87 |
"chartreuse4", 69, 139, 0, |
88 |
"chocolate", 210, 105, 30, |
89 |
"chocolate1", 255, 127, 36, |
90 |
"chocolate2", 238, 118, 33, |
91 |
"chocolate3", 205, 102, 29, |
92 |
"chocolate4", 139, 69, 19, |
93 |
"coral", 255, 127, 80, |
94 |
"coral1", 255, 114, 86, |
95 |
"coral2", 238, 106, 80, |
96 |
"coral3", 205, 91, 69, |
97 |
"coral4", 139, 62, 47, |
98 |
"cornflower blue", 100, 149, 237, |
99 |
"CornflowerBlue", 100, 149, 237, |
100 |
"cornsilk", 255, 248, 220, |
101 |
"cornsilk1", 255, 248, 220, |
102 |
"cornsilk2", 238, 232, 205, |
103 |
"cornsilk3", 205, 200, 177, |
104 |
"cornsilk4", 139, 136, 120, |
105 |
"cyan", 0, 255, 255, |
106 |
"cyan1", 0, 255, 255, |
107 |
"cyan2", 0, 238, 238, |
108 |
"cyan3", 0, 205, 205, |
109 |
"cyan4", 0, 139, 139, |
110 |
"dark blue", 0, 0, 139, |
111 |
"dark cyan", 0, 139, 139, |
112 |
"dark goldenrod", 184, 134, 11, |
113 |
"dark gray", 169, 169, 169, |
114 |
"dark green", 0, 100, 0, |
115 |
"dark grey", 169, 169, 169, |
116 |
"dark khaki", 189, 183, 107, |
117 |
"dark magenta", 139, 0, 139, |
118 |
"dark olive green", 85, 107, 47, |
119 |
"dark orange", 255, 140, 0, |
120 |
"dark orchid", 153, 50, 204, |
121 |
"dark red", 139, 0, 0, |
122 |
"dark salmon", 233, 150, 122, |
123 |
"dark sea green", 143, 188, 143, |
124 |
"dark slate blue", 72, 61, 139, |
125 |
"dark slate gray", 47, 79, 79, |
126 |
"dark slate grey", 47, 79, 79, |
127 |
"dark turquoise", 0, 206, 209, |
128 |
"dark violet", 148, 0, 211, |
129 |
"DarkBlue", 0, 0, 139, |
130 |
"DarkCyan", 0, 139, 139, |
131 |
"DarkGoldenrod", 184, 134, 11, |
132 |
"DarkGoldenrod1", 255, 185, 15, |
133 |
"DarkGoldenrod2", 238, 173, 14, |
134 |
"DarkGoldenrod3", 205, 149, 12, |
135 |
"DarkGoldenrod4", 139, 101, 8, |
136 |
"DarkGray", 169, 169, 169, |
137 |
"DarkGreen", 0, 100, 0, |
138 |
"DarkGrey", 169, 169, 169, |
139 |
"DarkKhaki", 189, 183, 107, |
140 |
"DarkMagenta", 139, 0, 139, |
141 |
"DarkOliveGreen", 85, 107, 47, |
142 |
"DarkOliveGreen1", 202, 255, 112, |
143 |
"DarkOliveGreen2", 188, 238, 104, |
144 |
"DarkOliveGreen3", 162, 205, 90, |
145 |
"DarkOliveGreen4", 110, 139, 61, |
146 |
"DarkOrange", 255, 140, 0, |
147 |
"DarkOrange1", 255, 127, 0, |
148 |
"DarkOrange2", 238, 118, 0, |
149 |
"DarkOrange3", 205, 102, 0, |
150 |
"DarkOrange4", 139, 69, 0, |
151 |
"DarkOrchid", 153, 50, 204, |
152 |
"DarkOrchid1", 191, 62, 255, |
153 |
"DarkOrchid2", 178, 58, 238, |
154 |
"DarkOrchid3", 154, 50, 205, |
155 |
"DarkOrchid4", 104, 34, 139, |
156 |
"DarkRed", 139, 0, 0, |
157 |
"DarkSalmon", 233, 150, 122, |
158 |
"DarkSeaGreen", 143, 188, 143, |
159 |
"DarkSeaGreen1", 193, 255, 193, |
160 |
"DarkSeaGreen2", 180, 238, 180, |
161 |
"DarkSeaGreen3", 155, 205, 155, |
162 |
"DarkSeaGreen4", 105, 139, 105, |
163 |
"DarkSlateBlue", 72, 61, 139, |
164 |
"DarkSlateGray", 47, 79, 79, |
165 |
"DarkSlateGray1", 151, 255, 255, |
166 |
"DarkSlateGray2", 141, 238, 238, |
167 |
"DarkSlateGray3", 121, 205, 205, |
168 |
"DarkSlateGray4", 82, 139, 139, |
169 |
"DarkSlateGrey", 47, 79, 79, |
170 |
"DarkTurquoise", 0, 206, 209, |
171 |
"DarkViolet", 148, 0, 211, |
172 |
"deep pink", 255, 20, 147, |
173 |
"deep sky blue", 0, 191, 255, |
174 |
"DeepPink", 255, 20, 147, |
175 |
"DeepPink1", 255, 20, 147, |
176 |
"DeepPink2", 238, 18, 137, |
177 |
"DeepPink3", 205, 16, 118, |
178 |
"DeepPink4", 139, 10, 80, |
179 |
"DeepSkyBlue", 0, 191, 255, |
180 |
"DeepSkyBlue1", 0, 191, 255, |
181 |
"DeepSkyBlue2", 0, 178, 238, |
182 |
"DeepSkyBlue3", 0, 154, 205, |
183 |
"DeepSkyBlue4", 0, 104, 139, |
184 |
"dim gray", 105, 105, 105, |
185 |
"dim grey", 105, 105, 105, |
186 |
"DimGray", 105, 105, 105, |
187 |
"DimGrey", 105, 105, 105, |
188 |
"dodger blue", 30, 144, 255, |
189 |
"DodgerBlue", 30, 144, 255, |
190 |
"DodgerBlue1", 30, 144, 255, |
191 |
"DodgerBlue2", 28, 134, 238, |
192 |
"DodgerBlue3", 24, 116, 205, |
193 |
"DodgerBlue4", 16, 78, 139, |
194 |
"firebrick", 178, 34, 34, |
195 |
"firebrick1", 255, 48, 48, |
196 |
"firebrick2", 238, 44, 44, |
197 |
"firebrick3", 205, 38, 38, |
198 |
"firebrick4", 139, 26, 26, |
199 |
"floral white", 255, 250, 240, |
200 |
"FloralWhite", 255, 250, 240, |
201 |
"forest green", 34, 139, 34, |
202 |
"ForestGreen", 34, 139, 34, |
203 |
"gainsboro", 220, 220, 220, |
204 |
"ghost white", 248, 248, 255, |
205 |
"GhostWhite", 248, 248, 255, |
206 |
"gold", 255, 215, 0, |
207 |
"gold1", 255, 215, 0, |
208 |
"gold2", 238, 201, 0, |
209 |
"gold3", 205, 173, 0, |
210 |
"gold4", 139, 117, 0, |
211 |
"goldenrod", 218, 165, 32, |
212 |
"goldenrod1", 255, 193, 37, |
213 |
"goldenrod2", 238, 180, 34, |
214 |
"goldenrod3", 205, 155, 29, |
215 |
"goldenrod4", 139, 105, 20, |
216 |
"gray", 190, 190, 190, |
217 |
"gray0", 0, 0, 0, |
218 |
"gray1", 3, 3, 3, |
219 |
"gray10", 26, 26, 26, |
220 |
"gray100", 255, 255, 255, |
221 |
"gray11", 28, 28, 28, |
222 |
"gray12", 31, 31, 31, |
223 |
"gray13", 33, 33, 33, |
224 |
"gray14", 36, 36, 36, |
225 |
"gray15", 38, 38, 38, |
226 |
"gray16", 41, 41, 41, |
227 |
"gray17", 43, 43, 43, |
228 |
"gray18", 46, 46, 46, |
229 |
"gray19", 48, 48, 48, |
230 |
"gray2", 5, 5, 5, |
231 |
"gray20", 51, 51, 51, |
232 |
"gray21", 54, 54, 54, |
233 |
"gray22", 56, 56, 56, |
234 |
"gray23", 59, 59, 59, |
235 |
"gray24", 61, 61, 61, |
236 |
"gray25", 64, 64, 64, |
237 |
"gray26", 66, 66, 66, |
238 |
"gray27", 69, 69, 69, |
239 |
"gray28", 71, 71, 71, |
240 |
"gray29", 74, 74, 74, |
241 |
"gray3", 8, 8, 8, |
242 |
"gray30", 77, 77, 77, |
243 |
"gray31", 79, 79, 79, |
244 |
"gray32", 82, 82, 82, |
245 |
"gray33", 84, 84, 84, |
246 |
"gray34", 87, 87, 87, |
247 |
"gray35", 89, 89, 89, |
248 |
"gray36", 92, 92, 92, |
249 |
"gray37", 94, 94, 94, |
250 |
"gray38", 97, 97, 97, |
251 |
"gray39", 99, 99, 99, |
252 |
"gray4", 10, 10, 10, |
253 |
"gray40", 102, 102, 102, |
254 |
"gray41", 105, 105, 105, |
255 |
"gray42", 107, 107, 107, |
256 |
"gray43", 110, 110, 110, |
257 |
"gray44", 112, 112, 112, |
258 |
"gray45", 115, 115, 115, |
259 |
"gray46", 117, 117, 117, |
260 |
"gray47", 120, 120, 120, |
261 |
"gray48", 122, 122, 122, |
262 |
"gray49", 125, 125, 125, |
263 |
"gray5", 13, 13, 13, |
264 |
"gray50", 127, 127, 127, |
265 |
"gray51", 130, 130, 130, |
266 |
"gray52", 133, 133, 133, |
267 |
"gray53", 135, 135, 135, |
268 |
"gray54", 138, 138, 138, |
269 |
"gray55", 140, 140, 140, |
270 |
"gray56", 143, 143, 143, |
271 |
"gray57", 145, 145, 145, |
272 |
"gray58", 148, 148, 148, |
273 |
"gray59", 150, 150, 150, |
274 |
"gray6", 15, 15, 15, |
275 |
"gray60", 153, 153, 153, |
276 |
"gray61", 156, 156, 156, |
277 |
"gray62", 158, 158, 158, |
278 |
"gray63", 161, 161, 161, |
279 |
"gray64", 163, 163, 163, |
280 |
"gray65", 166, 166, 166, |
281 |
"gray66", 168, 168, 168, |
282 |
"gray67", 171, 171, 171, |
283 |
"gray68", 173, 173, 173, |
284 |
"gray69", 176, 176, 176, |
285 |
"gray7", 18, 18, 18, |
286 |
"gray70", 179, 179, 179, |
287 |
"gray71", 181, 181, 181, |
288 |
"gray72", 184, 184, 184, |
289 |
"gray73", 186, 186, 186, |
290 |
"gray74", 189, 189, 189, |
291 |
"gray75", 191, 191, 191, |
292 |
"gray76", 194, 194, 194, |
293 |
"gray77", 196, 196, 196, |
294 |
"gray78", 199, 199, 199, |
295 |
"gray79", 201, 201, 201, |
296 |
"gray8", 20, 20, 20, |
297 |
"gray80", 204, 204, 204, |
298 |
"gray81", 207, 207, 207, |
299 |
"gray82", 209, 209, 209, |
300 |
"gray83", 212, 212, 212, |
301 |
"gray84", 214, 214, 214, |
302 |
"gray85", 217, 217, 217, |
303 |
"gray86", 219, 219, 219, |
304 |
"gray87", 222, 222, 222, |
305 |
"gray88", 224, 224, 224, |
306 |
"gray89", 227, 227, 227, |
307 |
"gray9", 23, 23, 23, |
308 |
"gray90", 229, 229, 229, |
309 |
"gray91", 232, 232, 232, |
310 |
"gray92", 235, 235, 235, |
311 |
"gray93", 237, 237, 237, |
312 |
"gray94", 240, 240, 240, |
313 |
"gray95", 242, 242, 242, |
314 |
"gray96", 245, 245, 245, |
315 |
"gray97", 247, 247, 247, |
316 |
"gray98", 250, 250, 250, |
317 |
"gray99", 252, 252, 252, |
318 |
"green", 0, 255, 0, |
319 |
"green yellow", 173, 255, 47, |
320 |
"green1", 0, 255, 0, |
321 |
"green2", 0, 238, 0, |
322 |
"green3", 0, 205, 0, |
323 |
"green4", 0, 139, 0, |
324 |
"GreenYellow", 173, 255, 47, |
325 |
"grey", 190, 190, 190, |
326 |
"grey0", 0, 0, 0, |
327 |
"grey1", 3, 3, 3, |
328 |
"grey10", 26, 26, 26, |
329 |
"grey100", 255, 255, 255, |
330 |
"grey11", 28, 28, 28, |
331 |
"grey12", 31, 31, 31, |
332 |
"grey13", 33, 33, 33, |
333 |
"grey14", 36, 36, 36, |
334 |
"grey15", 38, 38, 38, |
335 |
"grey16", 41, 41, 41, |
336 |
"grey17", 43, 43, 43, |
337 |
"grey18", 46, 46, 46, |
338 |
"grey19", 48, 48, 48, |
339 |
"grey2", 5, 5, 5, |
340 |
"grey20", 51, 51, 51, |
341 |
"grey21", 54, 54, 54, |
342 |
"grey22", 56, 56, 56, |
343 |
"grey23", 59, 59, 59, |
344 |
"grey24", 61, 61, 61, |
345 |
"grey25", 64, 64, 64, |
346 |
"grey26", 66, 66, 66, |
347 |
"grey27", 69, 69, 69, |
348 |
"grey28", 71, 71, 71, |
349 |
"grey29", 74, 74, 74, |
350 |
"grey3", 8, 8, 8, |
351 |
"grey30", 77, 77, 77, |
352 |
"grey31", 79, 79, 79, |
353 |
"grey32", 82, 82, 82, |
354 |
"grey33", 84, 84, 84, |
355 |
"grey34", 87, 87, 87, |
356 |
"grey35", 89, 89, 89, |
357 |
"grey36", 92, 92, 92, |
358 |
"grey37", 94, 94, 94, |
359 |
"grey38", 97, 97, 97, |
360 |
"grey39", 99, 99, 99, |
361 |
"grey4", 10, 10, 10, |
362 |
"grey40", 102, 102, 102, |
363 |
"grey41", 105, 105, 105, |
364 |
"grey42", 107, 107, 107, |
365 |
"grey43", 110, 110, 110, |
366 |
"grey44", 112, 112, 112, |
367 |
"grey45", 115, 115, 115, |
368 |
"grey46", 117, 117, 117, |
369 |
"grey47", 120, 120, 120, |
370 |
"grey48", 122, 122, 122, |
371 |
"grey49", 125, 125, 125, |
372 |
"grey5", 13, 13, 13, |
373 |
"grey50", 127, 127, 127, |
374 |
"grey51", 130, 130, 130, |
375 |
"grey52", 133, 133, 133, |
376 |
"grey53", 135, 135, 135, |
377 |
"grey54", 138, 138, 138, |
378 |
"grey55", 140, 140, 140, |
379 |
"grey56", 143, 143, 143, |
380 |
"grey57", 145, 145, 145, |
381 |
"grey58", 148, 148, 148, |
382 |
"grey59", 150, 150, 150, |
383 |
"grey6", 15, 15, 15, |
384 |
"grey60", 153, 153, 153, |
385 |
"grey61", 156, 156, 156, |
386 |
"grey62", 158, 158, 158, |
387 |
"grey63", 161, 161, 161, |
388 |
"grey64", 163, 163, 163, |
389 |
"grey65", 166, 166, 166, |
390 |
"grey66", 168, 168, 168, |
391 |
"grey67", 171, 171, 171, |
392 |
"grey68", 173, 173, 173, |
393 |
"grey69", 176, 176, 176, |
394 |
"grey7", 18, 18, 18, |
395 |
"grey70", 179, 179, 179, |
396 |
"grey71", 181, 181, 181, |
397 |
"grey72", 184, 184, 184, |
398 |
"grey73", 186, 186, 186, |
399 |
"grey74", 189, 189, 189, |
400 |
"grey75", 191, 191, 191, |
401 |
"grey76", 194, 194, 194, |
402 |
"grey77", 196, 196, 196, |
403 |
"grey78", 199, 199, 199, |
404 |
"grey79", 201, 201, 201, |
405 |
"grey8", 20, 20, 20, |
406 |
"grey80", 204, 204, 204, |
407 |
"grey81", 207, 207, 207, |
408 |
"grey82", 209, 209, 209, |
409 |
"grey83", 212, 212, 212, |
410 |
"grey84", 214, 214, 214, |
411 |
"grey85", 217, 217, 217, |
412 |
"grey86", 219, 219, 219, |
413 |
"grey87", 222, 222, 222, |
414 |
"grey88", 224, 224, 224, |
415 |
"grey89", 227, 227, 227, |
416 |
"grey9", 23, 23, 23, |
417 |
"grey90", 229, 229, 229, |
418 |
"grey91", 232, 232, 232, |
419 |
"grey92", 235, 235, 235, |
420 |
"grey93", 237, 237, 237, |
421 |
"grey94", 240, 240, 240, |
422 |
"grey95", 242, 242, 242, |
423 |
"grey96", 245, 245, 245, |
424 |
"grey97", 247, 247, 247, |
425 |
"grey98", 250, 250, 250, |
426 |
"grey99", 252, 252, 252, |
427 |
"honeydew", 240, 255, 240, |
428 |
"honeydew1", 240, 255, 240, |
429 |
"honeydew2", 224, 238, 224, |
430 |
"honeydew3", 193, 205, 193, |
431 |
"honeydew4", 131, 139, 131, |
432 |
"hot pink", 255, 105, 180, |
433 |
"HotPink", 255, 105, 180, |
434 |
"HotPink1", 255, 110, 180, |
435 |
"HotPink2", 238, 106, 167, |
436 |
"HotPink3", 205, 96, 144, |
437 |
"HotPink4", 139, 58, 98, |
438 |
"indian red", 205, 92, 92, |
439 |
"IndianRed", 205, 92, 92, |
440 |
"IndianRed1", 255, 106, 106, |
441 |
"IndianRed2", 238, 99, 99, |
442 |
"IndianRed3", 205, 85, 85, |
443 |
"IndianRed4", 139, 58, 58, |
444 |
"ivory", 255, 255, 240, |
445 |
"ivory1", 255, 255, 240, |
446 |
"ivory2", 238, 238, 224, |
447 |
"ivory3", 205, 205, 193, |
448 |
"ivory4", 139, 139, 131, |
449 |
"khaki", 240, 230, 140, |
450 |
"khaki1", 255, 246, 143, |
451 |
"khaki2", 238, 230, 133, |
452 |
"khaki3", 205, 198, 115, |
453 |
"khaki4", 139, 134, 78, |
454 |
"lavender", 230, 230, 250, |
455 |
"lavender blush", 255, 240, 245, |
456 |
"LavenderBlush", 255, 240, 245, |
457 |
"LavenderBlush1", 255, 240, 245, |
458 |
"LavenderBlush2", 238, 224, 229, |
459 |
"LavenderBlush3", 205, 193, 197, |
460 |
"LavenderBlush4", 139, 131, 134, |
461 |
"lawn green", 124, 252, 0, |
462 |
"LawnGreen", 124, 252, 0, |
463 |
"lemon chiffon", 255, 250, 205, |
464 |
"LemonChiffon", 255, 250, 205, |
465 |
"LemonChiffon1", 255, 250, 205, |
466 |
"LemonChiffon2", 238, 233, 191, |
467 |
"LemonChiffon3", 205, 201, 165, |
468 |
"LemonChiffon4", 139, 137, 112, |
469 |
"light blue", 173, 216, 230, |
470 |
"light coral", 240, 128, 128, |
471 |
"light cyan", 224, 255, 255, |
472 |
"light goldenrod", 238, 221, 130, |
473 |
"light goldenrod yellow", 250, 250, 210, |
474 |
"light gray", 211, 211, 211, |
475 |
"light green", 144, 238, 144, |
476 |
"light grey", 211, 211, 211, |
477 |
"light pink", 255, 182, 193, |
478 |
"light salmon", 255, 160, 122, |
479 |
"light sea green", 32, 178, 170, |
480 |
"light sky blue", 135, 206, 250, |
481 |
"light slate blue", 132, 112, 255, |
482 |
"light slate gray", 119, 136, 153, |
483 |
"light slate grey", 119, 136, 153, |
484 |
"light steel blue", 176, 196, 222, |
485 |
"light yellow", 255, 255, 224, |
486 |
"LightBlue", 173, 216, 230, |
487 |
"LightBlue1", 191, 239, 255, |
488 |
"LightBlue2", 178, 223, 238, |
489 |
"LightBlue3", 154, 192, 205, |
490 |
"LightBlue4", 104, 131, 139, |
491 |
"LightCoral", 240, 128, 128, |
492 |
"LightCyan", 224, 255, 255, |
493 |
"LightCyan1", 224, 255, 255, |
494 |
"LightCyan2", 209, 238, 238, |
495 |
"LightCyan3", 180, 205, 205, |
496 |
"LightCyan4", 122, 139, 139, |
497 |
"LightGoldenrod", 238, 221, 130, |
498 |
"LightGoldenrod1", 255, 236, 139, |
499 |
"LightGoldenrod2", 238, 220, 130, |
500 |
"LightGoldenrod3", 205, 190, 112, |
501 |
"LightGoldenrod4", 139, 129, 76, |
502 |
"LightGoldenrodYellow", 250, 250, 210, |
503 |
"LightGray", 211, 211, 211, |
504 |
"LightGreen", 144, 238, 144, |
505 |
"LightGrey", 211, 211, 211, |
506 |
"LightPink", 255, 182, 193, |
507 |
"LightPink1", 255, 174, 185, |
508 |
"LightPink2", 238, 162, 173, |
509 |
"LightPink3", 205, 140, 149, |
510 |
"LightPink4", 139, 95, 101, |
511 |
"LightSalmon", 255, 160, 122, |
512 |
"LightSalmon1", 255, 160, 122, |
513 |
"LightSalmon2", 238, 149, 114, |
514 |
"LightSalmon3", 205, 129, 98, |
515 |
"LightSalmon4", 139, 87, 66, |
516 |
"LightSeaGreen", 32, 178, 170, |
517 |
"LightSkyBlue", 135, 206, 250, |
518 |
"LightSkyBlue1", 176, 226, 255, |
519 |
"LightSkyBlue2", 164, 211, 238, |
520 |
"LightSkyBlue3", 141, 182, 205, |
521 |
"LightSkyBlue4", 96, 123, 139, |
522 |
"LightSlateBlue", 132, 112, 255, |
523 |
"LightSlateGray", 119, 136, 153, |
524 |
"LightSlateGrey", 119, 136, 153, |
525 |
"LightSteelBlue", 176, 196, 222, |
526 |
"LightSteelBlue1", 202, 225, 255, |
527 |
"LightSteelBlue2", 188, 210, 238, |
528 |
"LightSteelBlue3", 162, 181, 205, |
529 |
"LightSteelBlue4", 110, 123, 139, |
530 |
"LightYellow", 255, 255, 224, |
531 |
"LightYellow1", 255, 255, 224, |
532 |
"LightYellow2", 238, 238, 209, |
533 |
"LightYellow3", 205, 205, 180, |
534 |
"LightYellow4", 139, 139, 122, |
535 |
"lime green", 50, 205, 50, |
536 |
"LimeGreen", 50, 205, 50, |
537 |
"linen", 250, 240, 230, |
538 |
"magenta", 255, 0, 255, |
539 |
"magenta1", 255, 0, 255, |
540 |
"magenta2", 238, 0, 238, |
541 |
"magenta3", 205, 0, 205, |
542 |
"magenta4", 139, 0, 139, |
543 |
"maroon", 176, 48, 96, |
544 |
"maroon1", 255, 52, 179, |
545 |
"maroon2", 238, 48, 167, |
546 |
"maroon3", 205, 41, 144, |
547 |
"maroon4", 139, 28, 98, |
548 |
"medium aquamarine", 102, 205, 170, |
549 |
"medium blue", 0, 0, 205, |
550 |
"medium orchid", 186, 85, 211, |
551 |
"medium purple", 147, 112, 219, |
552 |
"medium sea green", 60, 179, 113, |
553 |
"medium slate blue", 123, 104, 238, |
554 |
"medium spring green", 0, 250, 154, |
555 |
"medium turquoise", 72, 209, 204, |
556 |
"medium violet red", 199, 21, 133, |
557 |
"MediumAquamarine", 102, 205, 170, |
558 |
"MediumBlue", 0, 0, 205, |
559 |
"MediumOrchid", 186, 85, 211, |
560 |
"MediumOrchid1", 224, 102, 255, |
561 |
"MediumOrchid2", 209, 95, 238, |
562 |
"MediumOrchid3", 180, 82, 205, |
563 |
"MediumOrchid4", 122, 55, 139, |
564 |
"MediumPurple", 147, 112, 219, |
565 |
"MediumPurple1", 171, 130, 255, |
566 |
"MediumPurple2", 159, 121, 238, |
567 |
"MediumPurple3", 137, 104, 205, |
568 |
"MediumPurple4", 93, 71, 139, |
569 |
"MediumSeaGreen", 60, 179, 113, |
570 |
"MediumSlateBlue", 123, 104, 238, |
571 |
"MediumSpringGreen", 0, 250, 154, |
572 |
"MediumTurquoise", 72, 209, 204, |
573 |
"MediumVioletRed", 199, 21, 133, |
574 |
"midnight blue", 25, 25, 112, |
575 |
"MidnightBlue", 25, 25, 112, |
576 |
"mint cream", 245, 255, 250, |
577 |
"MintCream", 245, 255, 250, |
578 |
"misty rose", 255, 228, 225, |
579 |
"MistyRose", 255, 228, 225, |
580 |
"MistyRose1", 255, 228, 225, |
581 |
"MistyRose2", 238, 213, 210, |
582 |
"MistyRose3", 205, 183, 181, |
583 |
"MistyRose4", 139, 125, 123, |
584 |
"moccasin", 255, 228, 181, |
585 |
"navajo white", 255, 222, 173, |
586 |
"NavajoWhite", 255, 222, 173, |
587 |
"NavajoWhite1", 255, 222, 173, |
588 |
"NavajoWhite2", 238, 207, 161, |
589 |
"NavajoWhite3", 205, 179, 139, |
590 |
"NavajoWhite4", 139, 121, 94, |
591 |
"navy", 0, 0, 128, |
592 |
"navy blue", 0, 0, 128, |
593 |
"NavyBlue", 0, 0, 128, |
594 |
"old lace", 253, 245, 230, |
595 |
"OldLace", 253, 245, 230, |
596 |
"olive drab", 107, 142, 35, |
597 |
"OliveDrab", 107, 142, 35, |
598 |
"OliveDrab1", 192, 255, 62, |
599 |
"OliveDrab2", 179, 238, 58, |
600 |
"OliveDrab3", 154, 205, 50, |
601 |
"OliveDrab4", 105, 139, 34, |
602 |
"orange", 255, 165, 0, |
603 |
"orange red", 255, 69, 0, |
604 |
"orange1", 255, 165, 0, |
605 |
"orange2", 238, 154, 0, |
606 |
"orange3", 205, 133, 0, |
607 |
"orange4", 139, 90, 0, |
608 |
"OrangeRed", 255, 69, 0, |
609 |
"OrangeRed1", 255, 69, 0, |
610 |
"OrangeRed2", 238, 64, 0, |
611 |
"OrangeRed3", 205, 55, 0, |
612 |
"OrangeRed4", 139, 37, 0, |
613 |
"orchid", 218, 112, 214, |
614 |
"orchid1", 255, 131, 250, |
615 |
"orchid2", 238, 122, 233, |
616 |
"orchid3", 205, 105, 201, |
617 |
"orchid4", 139, 71, 137, |
618 |
"pale goldenrod", 238, 232, 170, |
619 |
"pale green", 152, 251, 152, |
620 |
"pale turquoise", 175, 238, 238, |
621 |
"pale violet red", 219, 112, 147, |
622 |
"PaleGoldenrod", 238, 232, 170, |
623 |
"PaleGreen", 152, 251, 152, |
624 |
"PaleGreen1", 154, 255, 154, |
625 |
"PaleGreen2", 144, 238, 144, |
626 |
"PaleGreen3", 124, 205, 124, |
627 |
"PaleGreen4", 84, 139, 84, |
628 |
"PaleTurquoise", 175, 238, 238, |
629 |
"PaleTurquoise1", 187, 255, 255, |
630 |
"PaleTurquoise2", 174, 238, 238, |
631 |
"PaleTurquoise3", 150, 205, 205, |
632 |
"PaleTurquoise4", 102, 139, 139, |
633 |
"PaleVioletRed", 219, 112, 147, |
634 |
"PaleVioletRed1", 255, 130, 171, |
635 |
"PaleVioletRed2", 238, 121, 159, |
636 |
"PaleVioletRed3", 205, 104, 137, |
637 |
"PaleVioletRed4", 139, 71, 93, |
638 |
"papaya whip", 255, 239, 213, |
639 |
"PapayaWhip", 255, 239, 213, |
640 |
"peach puff", 255, 218, 185, |
641 |
"PeachPuff", 255, 218, 185, |
642 |
"PeachPuff1", 255, 218, 185, |
643 |
"PeachPuff2", 238, 203, 173, |
644 |
"PeachPuff3", 205, 175, 149, |
645 |
"PeachPuff4", 139, 119, 101, |
646 |
"peru", 205, 133, 63, |
647 |
"pink", 255, 192, 203, |
648 |
"pink1", 255, 181, 197, |
649 |
"pink2", 238, 169, 184, |
650 |
"pink3", 205, 145, 158, |
651 |
"pink4", 139, 99, 108, |
652 |
"plum", 221, 160, 221, |
653 |
"plum1", 255, 187, 255, |
654 |
"plum2", 238, 174, 238, |
655 |
"plum3", 205, 150, 205, |
656 |
"plum4", 139, 102, 139, |
657 |
"powder blue", 176, 224, 230, |
658 |
"PowderBlue", 176, 224, 230, |
659 |
"purple", 160, 32, 240, |
660 |
"purple1", 155, 48, 255, |
661 |
"purple2", 145, 44, 238, |
662 |
"purple3", 125, 38, 205, |
663 |
"purple4", 85, 26, 139, |
664 |
"red", 255, 0, 0, |
665 |
"red1", 255, 0, 0, |
666 |
"red2", 238, 0, 0, |
667 |
"red3", 205, 0, 0, |
668 |
"red4", 139, 0, 0, |
669 |
"rosy brown", 188, 143, 143, |
670 |
"RosyBrown", 188, 143, 143, |
671 |
"RosyBrown1", 255, 193, 193, |
672 |
"RosyBrown2", 238, 180, 180, |
673 |
"RosyBrown3", 205, 155, 155, |
674 |
"RosyBrown4", 139, 105, 105, |
675 |
"royal blue", 65, 105, 225, |
676 |
"RoyalBlue", 65, 105, 225, |
677 |
"RoyalBlue1", 72, 118, 255, |
678 |
"RoyalBlue2", 67, 110, 238, |
679 |
"RoyalBlue3", 58, 95, 205, |
680 |
"RoyalBlue4", 39, 64, 139, |
681 |
"saddle brown", 139, 69, 19, |
682 |
"SaddleBrown", 139, 69, 19, |
683 |
"salmon", 250, 128, 114, |
684 |
"salmon1", 255, 140, 105, |
685 |
"salmon2", 238, 130, 98, |
686 |
"salmon3", 205, 112, 84, |
687 |
"salmon4", 139, 76, 57, |
688 |
"sandy brown", 244, 164, 96, |
689 |
"SandyBrown", 244, 164, 96, |
690 |
"sea green", 46, 139, 87, |
691 |
"SeaGreen", 46, 139, 87, |
692 |
"SeaGreen1", 84, 255, 159, |
693 |
"SeaGreen2", 78, 238, 148, |
694 |
"SeaGreen3", 67, 205, 128, |
695 |
"SeaGreen4", 46, 139, 87, |
696 |
"seashell", 255, 245, 238, |
697 |
"seashell1", 255, 245, 238, |
698 |
"seashell2", 238, 229, 222, |
699 |
"seashell3", 205, 197, 191, |
700 |
"seashell4", 139, 134, 130, |
701 |
"sienna", 160, 82, 45, |
702 |
"sienna1", 255, 130, 71, |
703 |
"sienna2", 238, 121, 66, |
704 |
"sienna3", 205, 104, 57, |
705 |
"sienna4", 139, 71, 38, |
706 |
"sky blue", 135, 206, 235, |
707 |
"SkyBlue", 135, 206, 235, |
708 |
"SkyBlue1", 135, 206, 255, |
709 |
"SkyBlue2", 126, 192, 238, |
710 |
"SkyBlue3", 108, 166, 205, |
711 |
"SkyBlue4", 74, 112, 139, |
712 |
"slate blue", 106, 90, 205, |
713 |
"slate gray", 112, 128, 144, |
714 |
"slate grey", 112, 128, 144, |
715 |
"SlateBlue", 106, 90, 205, |
716 |
"SlateBlue1", 131, 111, 255, |
717 |
"SlateBlue2", 122, 103, 238, |
718 |
"SlateBlue3", 105, 89, 205, |
719 |
"SlateBlue4", 71, 60, 139, |
720 |
"SlateGray", 112, 128, 144, |
721 |
"SlateGray1", 198, 226, 255, |
722 |
"SlateGray2", 185, 211, 238, |
723 |
"SlateGray3", 159, 182, 205, |
724 |
"SlateGray4", 108, 123, 139, |
725 |
"SlateGrey", 112, 128, 144, |
726 |
"snow", 255, 250, 250, |
727 |
"snow1", 255, 250, 250, |
728 |
"snow2", 238, 233, 233, |
729 |
"snow3", 205, 201, 201, |
730 |
"snow4", 139, 137, 137, |
731 |
"spring green", 0, 255, 127, |
732 |
"SpringGreen", 0, 255, 127, |
733 |
"SpringGreen1", 0, 255, 127, |
734 |
"SpringGreen2", 0, 238, 118, |
735 |
"SpringGreen3", 0, 205, 102, |
736 |
"SpringGreen4", 0, 139, 69, |
737 |
"steel blue", 70, 130, 180, |
738 |
"SteelBlue", 70, 130, 180, |
739 |
"SteelBlue1", 99, 184, 255, |
740 |
"SteelBlue2", 92, 172, 238, |
741 |
"SteelBlue3", 79, 148, 205, |
742 |
"SteelBlue4", 54, 100, 139, |
743 |
"tan", 210, 180, 140, |
744 |
"tan1", 255, 165, 79, |
745 |
"tan2", 238, 154, 73, |
746 |
"tan3", 205, 133, 63, |
747 |
"tan4", 139, 90, 43, |
748 |
"thistle", 216, 191, 216, |
749 |
"thistle1", 255, 225, 255, |
750 |
"thistle2", 238, 210, 238, |
751 |
"thistle3", 205, 181, 205, |
752 |
"thistle4", 139, 123, 139, |
753 |
"tomato", 255, 99, 71, |
754 |
"tomato1", 255, 99, 71, |
755 |
"tomato2", 238, 92, 66, |
756 |
"tomato3", 205, 79, 57, |
757 |
"tomato4", 139, 54, 38, |
758 |
"turquoise", 64, 224, 208, |
759 |
"turquoise1", 0, 245, 255, |
760 |
"turquoise2", 0, 229, 238, |
761 |
"turquoise3", 0, 197, 205, |
762 |
"turquoise4", 0, 134, 139, |
763 |
"violet", 238, 130, 238, |
764 |
"violet red", 208, 32, 144, |
765 |
"VioletRed", 208, 32, 144, |
766 |
"VioletRed1", 255, 62, 150, |
767 |
"VioletRed2", 238, 58, 140, |
768 |
"VioletRed3", 205, 50, 120, |
769 |
"VioletRed4", 139, 34, 82, |
770 |
"wheat", 245, 222, 179, |
771 |
"wheat1", 255, 231, 186, |
772 |
"wheat2", 238, 216, 174, |
773 |
"wheat3", 205, 186, 150, |
774 |
"wheat4", 139, 126, 102, |
775 |
"white", 255, 255, 255, |
776 |
"white smoke", 245, 245, 245, |
777 |
"WhiteSmoke", 245, 245, 245, |
778 |
"yellow", 255, 255, 0, |
779 |
"yellow green", 154, 205, 50, |
780 |
"yellow1", 255, 255, 0, |
781 |
"yellow2", 238, 238, 0, |
782 |
"yellow3", 205, 205, 0, |
783 |
"yellow4", 139, 139, 0, |
784 |
"YellowGreen", 154, 205, 50, |
785 |
NULL, 0, 0, 0 |
786 |
}; |
787 |
|
788 |
|
789 |
/* |
790 |
* This value will be set to the number of colors in the color table |
791 |
* the first time it is needed. |
792 |
*/ |
793 |
|
794 |
static int numXColors = 0; |
795 |
|
796 |
/* |
797 |
* Forward declarations for functions used only in this file. |
798 |
*/ |
799 |
|
800 |
static int FindColor _ANSI_ARGS_((const char *name, XColor *colorPtr)); |
801 |
|
802 |
/* |
803 |
*---------------------------------------------------------------------- |
804 |
* |
805 |
* FindColor -- |
806 |
* |
807 |
* This routine finds the color entry that corresponds to the |
808 |
* specified color. |
809 |
* |
810 |
* Results: |
811 |
* Returns non-zero on success. The RGB values of the XColor |
812 |
* will be initialized to the proper values on success. |
813 |
* |
814 |
* Side effects: |
815 |
* None. |
816 |
* |
817 |
*---------------------------------------------------------------------- |
818 |
*/ |
819 |
|
820 |
static int |
821 |
FindColor(name, colorPtr) |
822 |
const char *name; |
823 |
XColor *colorPtr; |
824 |
{ |
825 |
int l, u, r, i; |
826 |
|
827 |
/* |
828 |
* Count the number of elements in the color array if we haven't |
829 |
* done so yet. |
830 |
*/ |
831 |
|
832 |
if (numXColors == 0) { |
833 |
XColorEntry *ePtr; |
834 |
for (ePtr = xColors; ePtr->name != NULL; ePtr++) { |
835 |
numXColors++; |
836 |
} |
837 |
} |
838 |
|
839 |
/* |
840 |
* Perform a binary search on the sorted array of colors. |
841 |
*/ |
842 |
|
843 |
l = 0; |
844 |
u = numXColors - 1; |
845 |
while (l <= u) { |
846 |
i = (l + u) / 2; |
847 |
r = strcasecmp(name, xColors[i].name); |
848 |
if (r == 0) { |
849 |
break; |
850 |
} else if (r < 0) { |
851 |
u = i-1; |
852 |
} else { |
853 |
l = i+1; |
854 |
} |
855 |
} |
856 |
if (l > u) { |
857 |
return 0; |
858 |
} |
859 |
colorPtr->red = ((xColors[i].red << 8) | xColors[i].red); |
860 |
colorPtr->green = ((xColors[i].green << 8) | xColors[i].green); |
861 |
colorPtr->blue = ((xColors[i].blue << 8) | xColors[i].blue); |
862 |
return 1; |
863 |
} |
864 |
|
865 |
/* |
866 |
*---------------------------------------------------------------------- |
867 |
* |
868 |
* XParseColor -- |
869 |
* |
870 |
* Partial implementation of X color name parsing interface. |
871 |
* |
872 |
* Results: |
873 |
* Returns non-zero on success. |
874 |
* |
875 |
* Side effects: |
876 |
* None. |
877 |
* |
878 |
*---------------------------------------------------------------------- |
879 |
*/ |
880 |
|
881 |
Status |
882 |
XParseColor(display, map, spec, colorPtr) |
883 |
Display *display; |
884 |
Colormap map; |
885 |
const char* spec; |
886 |
XColor *colorPtr; |
887 |
{ |
888 |
if (spec[0] == '#') { |
889 |
char fmt[16]; |
890 |
int i, red, green, blue; |
891 |
|
892 |
if ((i = strlen(spec+1))%3) { |
893 |
return 0; |
894 |
} |
895 |
i /= 3; |
896 |
|
897 |
sprintf(fmt, "%%%dx%%%dx%%%dx", i, i, i); |
898 |
if (sscanf(spec+1, fmt, &red, &green, &blue) != 3) { |
899 |
return 0; |
900 |
} |
901 |
colorPtr->red = (((unsigned short) red) << (4 * (4 - i))) |
902 |
| ((unsigned short) red); |
903 |
colorPtr->green = (((unsigned short) green) << (4 * (4 - i))) |
904 |
| ((unsigned short) green); |
905 |
colorPtr->blue = (((unsigned short) blue) << (4 * (4 - i))) |
906 |
| ((unsigned short) blue); |
907 |
} else { |
908 |
if (!FindColor(spec, colorPtr)) { |
909 |
return 0; |
910 |
} |
911 |
} |
912 |
colorPtr->pixel = TkpGetPixel(colorPtr); |
913 |
colorPtr->flags = DoRed|DoGreen|DoBlue; |
914 |
colorPtr->pad = 0; |
915 |
return 1; |
916 |
} |
917 |
|
918 |
/* End of xcolors.c */ |