1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24: #include <config.h>
25: #include <stdio.h>
26: #include <math.h>
27:
28: #include "lisp.h"
29: #include "macterm.h"
30: #include "frame.h"
31: #include "window.h"
32: #include "buffer.h"
33: #include "intervals.h"
34: #include "dispextern.h"
35: #include "keyboard.h"
36: #include "blockinput.h"
37: #include <epaths.h>
38: #include "charset.h"
39: #include "coding.h"
40: #include "fontset.h"
41: #include "systime.h"
42: #include "termhooks.h"
43: #include "atimer.h"
44:
45: #include <ctype.h>
46: #include <sys/types.h>
47: #include <sys/stat.h>
48: #include <limits.h>
49: #include <errno.h>
50: #include <sys/param.h>
51:
52: extern void free_frame_menubar ();
53:
54: #if TARGET_API_MAC_CARBON
55:
56:
57:
58: static Lisp_Object Vmac_carbon_version_string;
59:
60: #endif
61:
62:
63:
64: int display_hourglass_p;
65:
66:
67:
68:
69: Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
70: Lisp_Object Vx_hourglass_pointer_shape;
71:
72:
73:
74: Lisp_Object Vx_sensitive_text_pointer_shape;
75:
76:
77:
78:
79: Lisp_Object Vx_window_horizontal_drag_shape;
80:
81:
82:
83: Lisp_Object Vx_cursor_fore_pixel;
84:
85:
86:
87: static int mac_in_use;
88:
89:
90:
91: Lisp_Object Vx_no_window_manager;
92:
93:
94:
95: Lisp_Object Vx_pixel_size_width_font_regexp;
96:
97: Lisp_Object Qnone;
98: Lisp_Object Qsuppress_icon;
99: Lisp_Object Qundefined_color;
100: Lisp_Object Qcancel_timer;
101:
102:
103:
104: extern Lisp_Object Vwindow_system_version;
105:
106: #if GLYPH_DEBUG
107: int image_cache_refcount, dpyinfo_refcount;
108: #endif
109:
110:
111: #if 0
112:
113:
114: static int
115: stricmp (const char *s, const char *t)
116: {
117: for ( ; tolower (*s) == tolower (*t); s++, t++)
118: if (*s == '\0')
119: return 0;
120: return tolower (*s) - tolower (*t);
121: }
122: #endif
123:
124:
125:
126: static int
127: strnicmp (const char *s, const char *t, unsigned int n)
128: {
129: for ( ; n > 0 && tolower (*s) == tolower (*t); n--, s++, t++)
130: if (*s == '\0')
131: return 0;
132: return n == 0 ? 0 : tolower (*s) - tolower (*t);
133: }
134:
135: ^L
136:
137:
138: void
139: check_mac ()
140: {
141: if (! mac_in_use)
142: error ("Mac native windows not in use or not initialized");
143: }
144:
145:
146:
147:
148: int
149: have_menus_p ()
150: {
151: return mac_in_use;
152: }
153:
154:
155:
156:
157: FRAME_PTR
158: check_x_frame (frame)
159: Lisp_Object frame;
160: {
161: FRAME_PTR f;
162:
163: if (NILP (frame))
164: frame = selected_frame;
165: CHECK_LIVE_FRAME (frame);
166: f = XFRAME (frame);
167: if (! FRAME_MAC_P (f))
168: error ("Non-Mac frame used");
169: return f;
170: }
171:
172:
173:
174:
175:
176: struct mac_display_info *
177: check_x_display_info (frame)
178: Lisp_Object frame;
179: {
180: struct mac_display_info *dpyinfo = NULL;
181:
182: if (NILP (frame))
183: {
184: struct frame *sf = XFRAME (selected_frame);
185:
186: if (FRAME_MAC_P (sf) && FRAME_LIVE_P (sf))
187: dpyinfo = FRAME_MAC_DISPLAY_INFO (sf);
188: else if (x_display_list != 0)
189: dpyinfo = x_display_list;
190: else
191: error ("Mac native windows are not in use or not initialized");
192: }
193: else if (STRINGP (frame))
194: dpyinfo = x_display_info_for_name (frame);
195: else
196: {
197: FRAME_PTR f = check_x_frame (frame);
198: dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
199: }
200:
201: return dpyinfo;
202: }
203:
204: ^L
205:
206: static Lisp_Object unwind_create_frame P_ ((Lisp_Object));
207: static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object));
208:
209: void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
210: void x_set_background_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
211: void x_set_mouse_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
212: void x_set_cursor_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
213: void x_set_border_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
214: void x_set_cursor_type P_ ((struct frame *, Lisp_Object, Lisp_Object));
215: void x_set_icon_type P_ ((struct frame *, Lisp_Object, Lisp_Object));
216: void x_set_icon_name P_ ((struct frame *, Lisp_Object, Lisp_Object));
217: void x_explicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object));
218: void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
219: void x_set_title P_ ((struct frame *, Lisp_Object, Lisp_Object));
220: void x_set_tool_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
221:
222: extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
223:
224: ^L
225:
226:
227:
228:
229:
230: void
231: x_real_positions (f, xptr, yptr)
232: FRAME_PTR f;
233: int *xptr, *yptr;
234: {
235: Rect inner, outer;
236:
237: mac_get_window_bounds (f, &inner, &outer);
238:
239: f->x_pixels_diff = inner.left - outer.left;
240: f->y_pixels_diff = inner.top - outer.top;
241:
242: *xptr = outer.left;
243: *yptr = outer.top;
244: }
245:
246: ^L
247:
248: typedef struct colormap_t
249: {
250: unsigned long color;
251: char *name;
252: } colormap_t;
253:
254: static const colormap_t mac_color_map[] =
255: {
256: { RGB_TO_ULONG(255, 250, 250), "snow" },
257: { RGB_TO_ULONG(248, 248, 255), "ghost white" },
258: { RGB_TO_ULONG(248, 248, 255), "GhostWhite" },
259: { RGB_TO_ULONG(245, 245, 245), "white smoke" },
260: { RGB_TO_ULONG(245, 245, 245), "WhiteSmoke" },
261: { RGB_TO_ULONG(220, 220, 220), "gainsboro" },
262: { RGB_TO_ULONG(255, 250, 240), "floral white" },
263: { RGB_TO_ULONG(255, 250, 240), "FloralWhite" },
264: { RGB_TO_ULONG(253, 245, 230), "old lace" },
265: { RGB_TO_ULONG(253, 245, 230), "OldLace" },
266: { RGB_TO_ULONG(250, 240, 230), "linen" },
267: { RGB_TO_ULONG(250, 235, 215), "antique white" },
268: { RGB_TO_ULONG(250, 235, 215), "AntiqueWhite" },
269: { RGB_TO_ULONG(255, 239, 213), "papaya whip" },
270: { RGB_TO_ULONG(255, 239, 213), "PapayaWhip" },
271: { RGB_TO_ULONG(255, 235, 205), "blanched almond" },
272: { RGB_TO_ULONG(255, 235, 205), "BlanchedAlmond" },
273: { RGB_TO_ULONG(255, 228, 196), "bisque" },
274: { RGB_TO_ULONG(255, 218, 185), "peach puff" },
275: { RGB_TO_ULONG(255, 218, 185), "PeachPuff" },
276: { RGB_TO_ULONG(255, 222, 173), "navajo white" },
277: { RGB_TO_ULONG(255, 222, 173), "NavajoWhite" },
278: { RGB_TO_ULONG(255, 228, 181), "moccasin" },
279: { RGB_TO_ULONG(255, 248, 220), "cornsilk" },
280: { RGB_TO_ULONG(255, 255, 240), "ivory" },
281: { RGB_TO_ULONG(255, 250, 205), "lemon chiffon" },
282: { RGB_TO_ULONG(255, 250, 205), "LemonChiffon" },
283: { RGB_TO_ULONG(255, 245, 238), "seashell" },
284: { RGB_TO_ULONG(240, 255, 240), "honeydew" },
285: { RGB_TO_ULONG(245, 255, 250), "mint cream" },
286: { RGB_TO_ULONG(245, 255, 250), "MintCream" },
287: { RGB_TO_ULONG(240, 255, 255), "azure" },
288: { RGB_TO_ULONG(240, 248, 255), "alice blue" },
289: { RGB_TO_ULONG(240, 248, 255), "AliceBlue" },
290: { RGB_TO_ULONG(230, 230, 250), "lavender" },
291: { RGB_TO_ULONG(255, 240, 245), "lavender blush" },
292: { RGB_TO_ULONG(255, 240, 245), "LavenderBlush" },
293: { RGB_TO_ULONG(255, 228, 225), "misty rose" },
294: { RGB_TO_ULONG(255, 228, 225), "MistyRose" },
295: { RGB_TO_ULONG(255, 255, 255), "white" },
296: { RGB_TO_ULONG(0 , 0 , 0 ), "black" },
297: { RGB_TO_ULONG(47 , 79 , 79 ), "dark slate gray" },
298: { RGB_TO_ULONG(47 , 79 , 79 ), "DarkSlateGray" },
299: { RGB_TO_ULONG(47 , 79 , 79 ), "dark slate grey" },
300: { RGB_TO_ULONG(47 , 79 , 79 ), "DarkSlateGrey" },
301: { RGB_TO_ULONG(105, 105, 105), "dim gray" },
302: { RGB_TO_ULONG(105, 105, 105), "DimGray" },
303: { RGB_TO_ULONG(105, 105, 105), "dim grey" },
304: { RGB_TO_ULONG(105, 105, 105), "DimGrey" },
305: { RGB_TO_ULONG(112, 128, 144), "slate gray" },
306: { RGB_TO_ULONG(112, 128, 144), "SlateGray" },
307: { RGB_TO_ULONG(112, 128, 144), "slate grey" },
308: { RGB_TO_ULONG(112, 128, 144), "SlateGrey" },
309: { RGB_TO_ULONG(119, 136, 153), "light slate gray" },
310: { RGB_TO_ULONG(119, 136, 153), "LightSlateGray" },
311: { RGB_TO_ULONG(119, 136, 153), "light slate grey" },
312: { RGB_TO_ULONG(119, 136, 153), "LightSlateGrey" },
313: { RGB_TO_ULONG(190, 190, 190), "gray" },
314: { RGB_TO_ULONG(190, 190, 190), "grey" },
315: { RGB_TO_ULONG(211, 211, 211), "light grey" },
316: { RGB_TO_ULONG(211, 211, 211), "LightGrey" },
317: { RGB_TO_ULONG(211, 211, 211), "light gray" },
318: { RGB_TO_ULONG(211, 211, 211), "LightGray" },
319: { RGB_TO_ULONG(25 , 25 , 112), "midnight blue" },
320: { RGB_TO_ULONG(25 , 25 , 112), "MidnightBlue" },
321: { RGB_TO_ULONG(0 , 0 , 128), "navy" },
322: { RGB_TO_ULONG(0 , 0 , 128), "navy blue" },
323: { RGB_TO_ULONG(0 , 0 , 128), "NavyBlue" },
324: { RGB_TO_ULONG(100, 149, 237), "cornflower blue" },
325: { RGB_TO_ULONG(100, 149, 237), "CornflowerBlue" },
326: { RGB_TO_ULONG(72 , 61 , 139), "dark slate blue" },
327: { RGB_TO_ULONG(72 , 61 , 139), "DarkSlateBlue" },
328: { RGB_TO_ULONG(106, 90 , 205), "slate blue" },
329: { RGB_TO_ULONG(106, 90 , 205), "SlateBlue" },
330: { RGB_TO_ULONG(123, 104, 238), "medium slate blue" },
331: { RGB_TO_ULONG(123, 104, 238), "MediumSlateBlue" },
332: { RGB_TO_ULONG(132, 112, 255), "light slate blue" },
333: { RGB_TO_ULONG(132, 112, 255), "LightSlateBlue" },
334: { RGB_TO_ULONG(0 , 0 , 205), "medium blue" },
335: { RGB_TO_ULONG(0 , 0 , 205), "MediumBlue" },
336: { RGB_TO_ULONG(65 , 105, 225), "royal blue" },
337: { RGB_TO_ULONG(65 , 105, 225), "RoyalBlue" },
338: { RGB_TO_ULONG(0 , 0 , 255), "blue" },
339: { RGB_TO_ULONG(30 , 144, 255), "dodger blue" },
340: { RGB_TO_ULONG(30 , 144, 255), "DodgerBlue" },
341: { RGB_TO_ULONG(0 , 191, 255), "deep sky blue" },
342: { RGB_TO_ULONG(0 , 191, 255), "DeepSkyBlue" },
343: { RGB_TO_ULONG(135, 206, 235), "sky blue" },
344: { RGB_TO_ULONG(135, 206, 235), "SkyBlue" },
345: { RGB_TO_ULONG(135, 206, 250), "light sky blue" },
346: { RGB_TO_ULONG(135, 206, 250), "LightSkyBlue" },
347: { RGB_TO_ULONG(70 , 130, 180), "steel blue" },
348: { RGB_TO_ULONG(70 , 130, 180), "SteelBlue" },
349: { RGB_TO_ULONG(176, 196, 222), "light steel blue" },
350: { RGB_TO_ULONG(176, 196, 222), "LightSteelBlue" },
351: { RGB_TO_ULONG(173, 216, 230), "light blue" },
352: { RGB_TO_ULONG(173, 216, 230), "LightBlue" },
353: { RGB_TO_ULONG(176, 224, 230), "powder blue" },
354: { RGB_TO_ULONG(176, 224, 230), "PowderBlue" },
355: { RGB_TO_ULONG(175, 238, 238), "pale turquoise" },
356: { RGB_TO_ULONG(175, 238, 238), "PaleTurquoise" },
357: { RGB_TO_ULONG(0 , 206, 209), "dark turquoise" },
358: { RGB_TO_ULONG(0 , 206, 209), "DarkTurquoise" },
359: { RGB_TO_ULONG(72 , 209, 204), "medium turquoise" },
360: { RGB_TO_ULONG(72 , 209, 204), "MediumTurquoise" },
361: { RGB_TO_ULONG(64 , 224, 208), "turquoise" },
362: { RGB_TO_ULONG(0 , 255, 255), "cyan" },
363: { RGB_TO_ULONG(224, 255, 255), "light cyan" },
364: { RGB_TO_ULONG(224, 255, 255), "LightCyan" },
365: { RGB_TO_ULONG(95 , 158, 160), "cadet blue" },
366: { RGB_TO_ULONG(95 , 158, 160), "CadetBlue" },
367: { RGB_TO_ULONG(102, 205, 170), "medium aquamarine" },
368: { RGB_TO_ULONG(102, 205, 170), "MediumAquamarine" },
369: { RGB_TO_ULONG(127, 255, 212), "aquamarine" },
370: { RGB_TO_ULONG(0 , 100, 0 ), "dark green" },
371: { RGB_TO_ULONG(0 , 100, 0 ), "DarkGreen" },
372: { RGB_TO_ULONG(85 , 107, 47 ), "dark olive green" },
373: { RGB_TO_ULONG(85 , 107, 47 ), "DarkOliveGreen" },
374: { RGB_TO_ULONG(143, 188, 143), "dark sea green" },
375: { RGB_TO_ULONG(143, 188, 143), "DarkSeaGreen" },
376: { RGB_TO_ULONG(46 , 139, 87 ), "sea green" },
377: { RGB_TO_ULONG(46 , 139, 87 ), "SeaGreen" },
378: { RGB_TO_ULONG(60 , 179, 113), "medium sea green" },
379: { RGB_TO_ULONG(60 , 179, 113), "MediumSeaGreen" },
380: { RGB_TO_ULONG(32 , 178, 170), "light sea green" },
381: { RGB_TO_ULONG(32 , 178, 170), "LightSeaGreen" },
382: { RGB_TO_ULONG(152, 251, 152), "pale green" },
383: { RGB_TO_ULONG(152, 251, 152), "PaleGreen" },
384: { RGB_TO_ULONG(0 , 255, 127), "spring green" },
385: { RGB_TO_ULONG(0 , 255, 127), "SpringGreen" },
386: { RGB_TO_ULONG(124, 252, 0 ), "lawn green" },
387: { RGB_TO_ULONG(124, 252, 0 ), "LawnGreen" },
388: { RGB_TO_ULONG(0 , 255, 0 ), "green" },
389: { RGB_TO_ULONG(127, 255, 0 ), "chartreuse" },
390: { RGB_TO_ULONG(0 , 250, 154), "medium spring green" },
391: { RGB_TO_ULONG(0 , 250, 154), "MediumSpringGreen" },
392: { RGB_TO_ULONG(173, 255, 47 ), "green yellow" },
393: { RGB_TO_ULONG(173, 255, 47 ), "GreenYellow" },
394: { RGB_TO_ULONG(50 , 205, 50 ), "lime green" },
395: { RGB_TO_ULONG(50 , 205, 50 ), "LimeGreen" },
396: { RGB_TO_ULONG(154, 205, 50 ), "yellow green" },
397: { RGB_TO_ULONG(154, 205, 50 ), "YellowGreen" },
398: { RGB_TO_ULONG(34 , 139, 34 ), "forest green" },
399: { RGB_TO_ULONG(34 , 139, 34 ), "ForestGreen" },
400: { RGB_TO_ULONG(107, 142, 35 ), "olive drab" },
401: { RGB_TO_ULONG(107, 142, 35 ), "OliveDrab" },
402: { RGB_TO_ULONG(189, 183, 107), "dark khaki" },
403: { RGB_TO_ULONG(189, 183, 107), "DarkKhaki" },
404: { RGB_TO_ULONG(240, 230, 140), "khaki" },
405: { RGB_TO_ULONG(238, 232, 170), "pale goldenrod" },
406: { RGB_TO_ULONG(238, 232, 170), "PaleGoldenrod" },
407: { RGB_TO_ULONG(250, 250, 210), "light goldenrod yellow" },
408: { RGB_TO_ULONG(250, 250, 210), "LightGoldenrodYellow" },
409: { RGB_TO_ULONG(255, 255, 224), "light yellow" },
410: { RGB_TO_ULONG(255, 255, 224), "LightYellow" },
411: { RGB_TO_ULONG(255, 255, 0 ), "yellow" },
412: { RGB_TO_ULONG(255, 215, 0 ), "gold" },
413: { RGB_TO_ULONG(238, 221, 130), "light goldenrod" },
414: { RGB_TO_ULONG(238, 221, 130), "LightGoldenrod" },
415: { RGB_TO_ULONG(218, 165, 32 ), "goldenrod" },
416: { RGB_TO_ULONG(184, 134, 11 ), "dark goldenrod" },
417: { RGB_TO_ULONG(184, 134, 11 ), "DarkGoldenrod" },
418: { RGB_TO_ULONG(188, 143, 143), "rosy brown" },
419: { RGB_TO_ULONG(188, 143, 143), "RosyBrown" },
420: { RGB_TO_ULONG(205, 92 , 92 ), "indian red" },
421: { RGB_TO_ULONG(205, 92 , 92 ), "IndianRed" },
422: { RGB_TO_ULONG(139, 69 , 19 ), "saddle brown" },
423: { RGB_TO_ULONG(139, 69 , 19 ), "SaddleBrown" },
424: { RGB_TO_ULONG(160, 82 , 45 ), "sienna" },
425: { RGB_TO_ULONG(205, 133, 63 ), "peru" },
426: { RGB_TO_ULONG(222, 184, 135), "burlywood" },
427: { RGB_TO_ULONG(245, 245, 220), "beige" },
428: { RGB_TO_ULONG(245, 222, 179), "wheat" },
429: { RGB_TO_ULONG(244, 164, 96 ), "sandy brown" },
430: { RGB_TO_ULONG(244, 164, 96 ), "SandyBrown" },
431: { RGB_TO_ULONG(210, 180, 140), "tan" },
432: { RGB_TO_ULONG(210, 105, 30 ), "chocolate" },
433: { RGB_TO_ULONG(178, 34 , 34 ), "firebrick" },
434: { RGB_TO_ULONG(165, 42 , 42 ), "brown" },
435: { RGB_TO_ULONG(233, 150, 122), "dark salmon" },
436: { RGB_TO_ULONG(233, 150, 122), "DarkSalmon" },
437: { RGB_TO_ULONG(250, 128, 114), "salmon" },
438: { RGB_TO_ULONG(255, 160, 122), "light salmon" },
439: { RGB_TO_ULONG(255, 160, 122), "LightSalmon" },
440: { RGB_TO_ULONG(255, 165, 0 ), "orange" },
441: { RGB_TO_ULONG(255, 140, 0 ), "dark orange" },
442: { RGB_TO_ULONG(255, 140, 0 ), "DarkOrange" },
443: { RGB_TO_ULONG(255, 127, 80 ), "coral" },
444: { RGB_TO_ULONG(240, 128, 128), "light coral" },
445: { RGB_TO_ULONG(240, 128, 128), "LightCoral" },
446: { RGB_TO_ULONG(255, 99 , 71 ), "tomato" },
447: { RGB_TO_ULONG(255, 69 , 0 ), "orange red" },
448: { RGB_TO_ULONG(255, 69 , 0 ), "OrangeRed" },
449: { RGB_TO_ULONG(255, 0 , 0 ), "red" },
450: { RGB_TO_ULONG(255, 105, 180), "hot pink" },
451: { RGB_TO_ULONG(255, 105, 180), "HotPink" },
452: { RGB_TO_ULONG(255, 20 , 147), "deep pink" },
453: { RGB_TO_ULONG(255, 20 , 147), "DeepPink" },
454: { RGB_TO_ULONG(255, 192, 203), "pink" },
455: { RGB_TO_ULONG(255, 182, 193), "light pink" },
456: { RGB_TO_ULONG(255, 182, 193), "LightPink" },
457: { RGB_TO_ULONG(219, 112, 147), "pale violet red" },
458: { RGB_TO_ULONG(219, 112, 147), "PaleVioletRed" },
459: { RGB_TO_ULONG(176, 48 , 96 ), "maroon" },
460: { RGB_TO_ULONG(199, 21 , 133), "medium violet red" },
461: { RGB_TO_ULONG(199, 21 , 133), "MediumVioletRed" },
462: { RGB_TO_ULONG(208, 32 , 144), "violet red" },
463: { RGB_TO_ULONG(208, 32 , 144), "VioletRed" },
464: { RGB_TO_ULONG(255, 0 , 255), "magenta" },
465: { RGB_TO_ULONG(238, 130, 238), "violet" },
466: { RGB_TO_ULONG(221, 160, 221), "plum" },
467: { RGB_TO_ULONG(218, 112, 214), "orchid" },
468: { RGB_TO_ULONG(186, 85 , 211), "medium orchid" },
469: { RGB_TO_ULONG(186, 85 , 211), "MediumOrchid" },
470: { RGB_TO_ULONG(153, 50 , 204), "dark orchid" },
471: { RGB_TO_ULONG(153, 50 , 204), "DarkOrchid" },
472: { RGB_TO_ULONG(148, 0 , 211), "dark violet" },
473: { RGB_TO_ULONG(148, 0 , 211), "DarkViolet" },
474: { RGB_TO_ULONG(138, 43 , 226), "blue violet" },
475: { RGB_TO_ULONG(138, 43 , 226), "BlueViolet" },
476: { RGB_TO_ULONG(160, 32 , 240), "purple" },
477: { RGB_TO_ULONG(147, 112, 219), "medium purple" },
478: { RGB_TO_ULONG(147, 112, 219), "MediumPurple" },
479: { RGB_TO_ULONG(216, 191, 216), "thistle" },
480: { RGB_TO_ULONG(255, 250, 250), "snow1" },
481: { RGB_TO_ULONG(238, 233, 233), "snow2" },
482: { RGB_TO_ULONG(205, 201, 201), "snow3" },
483: { RGB_TO_ULONG(139, 137, 137), "snow4" },
484: { RGB_TO_ULONG(255, 245, 238), "seashell1" },
485: { RGB_TO_ULONG(238, 229, 222), "seashell2" },
486: { RGB_TO_ULONG(205, 197, 191), "seashell3" },
487: { RGB_TO_ULONG(139, 134, 130), "seashell4" },
488: { RGB_TO_ULONG(255, 239, 219), "AntiqueWhite1" }