comparison src/faces.c @ 5128:7be849cb8828 ben-lisp-object

merge
author Ben Wing <ben@xemacs.org>
date Sun, 07 Mar 2010 02:09:59 -0600
parents a9c41067dd88 5502045ec510
children 1fae11d56ad2
comparison
equal deleted inserted replaced
5127:a9c41067dd88 5128:7be849cb8828
1 /* "Face" primitives 1 /* "Face" primitives
2 Copyright (C) 1994 Free Software Foundation, Inc. 2 Copyright (C) 1994 Free Software Foundation, Inc.
3 Copyright (C) 1995 Board of Trustees, University of Illinois. 3 Copyright (C) 1995 Board of Trustees, University of Illinois.
4 Copyright (C) 1995, 1996, 2001, 2002, 2005, 2010 Ben Wing. 4 Copyright (C) 1995, 1996, 2001, 2002, 2005, 2010 Ben Wing.
5 Copyright (C) 1995 Sun Microsystems, Inc. 5 Copyright (C) 1995 Sun Microsystems, Inc.
6 Copyright (C) 2010 Didier Verna
6 7
7 This file is part of XEmacs. 8 This file is part of XEmacs.
8 9
9 XEmacs is free software; you can redistribute it and/or modify it 10 XEmacs is free software; you can redistribute it and/or modify it
10 under the terms of the GNU General Public License as published by the 11 under the terms of the GNU General Public License as published by the
40 #include "specifier.h" 41 #include "specifier.h"
41 #include "window.h" 42 #include "window.h"
42 43
43 Lisp_Object Qfacep; 44 Lisp_Object Qfacep;
44 Lisp_Object Qforeground, Qbackground, Qdisplay_table; 45 Lisp_Object Qforeground, Qbackground, Qdisplay_table;
45 Lisp_Object Qbackground_pixmap, Qunderline, Qdim; 46 Lisp_Object Qbackground_pixmap, Qbackground_placement, Qunderline, Qdim;
46 Lisp_Object Qblinking, Qstrikethru; 47 Lisp_Object Qblinking, Qstrikethru;
47 48
48 Lisp_Object Qinit_face_from_resources; 49 Lisp_Object Qinit_face_from_resources;
49 Lisp_Object Qinit_frame_faces; 50 Lisp_Object Qinit_frame_faces;
50 Lisp_Object Qinit_device_faces; 51 Lisp_Object Qinit_device_faces;
109 mark_object (face->foreground); 110 mark_object (face->foreground);
110 mark_object (face->background); 111 mark_object (face->background);
111 mark_object (face->font); 112 mark_object (face->font);
112 mark_object (face->display_table); 113 mark_object (face->display_table);
113 mark_object (face->background_pixmap); 114 mark_object (face->background_pixmap);
115 mark_object (face->background_placement);
114 mark_object (face->underline); 116 mark_object (face->underline);
115 mark_object (face->strikethru); 117 mark_object (face->strikethru);
116 mark_object (face->highlight); 118 mark_object (face->highlight);
117 mark_object (face->dim); 119 mark_object (face->dim);
118 mark_object (face->blinking); 120 mark_object (face->blinking);
160 (internal_equal (f1->foreground, f2->foreground, depth) && 162 (internal_equal (f1->foreground, f2->foreground, depth) &&
161 internal_equal (f1->background, f2->background, depth) && 163 internal_equal (f1->background, f2->background, depth) &&
162 internal_equal (f1->font, f2->font, depth) && 164 internal_equal (f1->font, f2->font, depth) &&
163 internal_equal (f1->display_table, f2->display_table, depth) && 165 internal_equal (f1->display_table, f2->display_table, depth) &&
164 internal_equal (f1->background_pixmap, f2->background_pixmap, depth) && 166 internal_equal (f1->background_pixmap, f2->background_pixmap, depth) &&
167 internal_equal (f1->background_placement,
168 f2->background_placement,
169 depth) &&
165 internal_equal (f1->underline, f2->underline, depth) && 170 internal_equal (f1->underline, f2->underline, depth) &&
166 internal_equal (f1->strikethru, f2->strikethru, depth) && 171 internal_equal (f1->strikethru, f2->strikethru, depth) &&
167 internal_equal (f1->highlight, f2->highlight, depth) && 172 internal_equal (f1->highlight, f2->highlight, depth) &&
168 internal_equal (f1->dim, f2->dim, depth) && 173 internal_equal (f1->dim, f2->dim, depth) &&
169 internal_equal (f1->blinking, f2->blinking, depth) && 174 internal_equal (f1->blinking, f2->blinking, depth) &&
190 face_getprop (Lisp_Object obj, Lisp_Object prop) 195 face_getprop (Lisp_Object obj, Lisp_Object prop)
191 { 196 {
192 Lisp_Face *f = XFACE (obj); 197 Lisp_Face *f = XFACE (obj);
193 198
194 return 199 return
195 (EQ (prop, Qforeground) ? f->foreground : 200 (EQ (prop, Qforeground) ? f->foreground :
196 EQ (prop, Qbackground) ? f->background : 201 EQ (prop, Qbackground) ? f->background :
197 EQ (prop, Qfont) ? f->font : 202 EQ (prop, Qfont) ? f->font :
198 EQ (prop, Qdisplay_table) ? f->display_table : 203 EQ (prop, Qdisplay_table) ? f->display_table :
199 EQ (prop, Qbackground_pixmap) ? f->background_pixmap : 204 EQ (prop, Qbackground_pixmap) ? f->background_pixmap :
200 EQ (prop, Qunderline) ? f->underline : 205 EQ (prop, Qbackground_placement) ? f->background_placement :
201 EQ (prop, Qstrikethru) ? f->strikethru : 206 EQ (prop, Qunderline) ? f->underline :
202 EQ (prop, Qhighlight) ? f->highlight : 207 EQ (prop, Qstrikethru) ? f->strikethru :
203 EQ (prop, Qdim) ? f->dim : 208 EQ (prop, Qhighlight) ? f->highlight :
204 EQ (prop, Qblinking) ? f->blinking : 209 EQ (prop, Qdim) ? f->dim :
205 EQ (prop, Qreverse) ? f->reverse : 210 EQ (prop, Qblinking) ? f->blinking :
206 EQ (prop, Qdoc_string) ? f->doc_string : 211 EQ (prop, Qreverse) ? f->reverse :
212 EQ (prop, Qdoc_string) ? f->doc_string :
207 external_plist_get (&f->plist, prop, 0, ERROR_ME)); 213 external_plist_get (&f->plist, prop, 0, ERROR_ME));
208 } 214 }
209 215
210 static int 216 static int
211 face_putprop (Lisp_Object obj, Lisp_Object prop, Lisp_Object value) 217 face_putprop (Lisp_Object obj, Lisp_Object prop, Lisp_Object value)
212 { 218 {
213 Lisp_Face *f = XFACE (obj); 219 Lisp_Face *f = XFACE (obj);
214 220
215 if (EQ (prop, Qforeground) || 221 if (EQ (prop, Qforeground) ||
216 EQ (prop, Qbackground) || 222 EQ (prop, Qbackground) ||
217 EQ (prop, Qfont) || 223 EQ (prop, Qfont) ||
218 EQ (prop, Qdisplay_table) || 224 EQ (prop, Qdisplay_table) ||
219 EQ (prop, Qbackground_pixmap) || 225 EQ (prop, Qbackground_pixmap) ||
220 EQ (prop, Qunderline) || 226 EQ (prop, Qbackground_placement) ||
221 EQ (prop, Qstrikethru) || 227 EQ (prop, Qunderline) ||
222 EQ (prop, Qhighlight) || 228 EQ (prop, Qstrikethru) ||
223 EQ (prop, Qdim) || 229 EQ (prop, Qhighlight) ||
224 EQ (prop, Qblinking) || 230 EQ (prop, Qdim) ||
231 EQ (prop, Qblinking) ||
225 EQ (prop, Qreverse)) 232 EQ (prop, Qreverse))
226 return 0; 233 return 0;
227 234
228 if (EQ (prop, Qdoc_string)) 235 if (EQ (prop, Qdoc_string))
229 { 236 {
240 static int 247 static int
241 face_remprop (Lisp_Object obj, Lisp_Object prop) 248 face_remprop (Lisp_Object obj, Lisp_Object prop)
242 { 249 {
243 Lisp_Face *f = XFACE (obj); 250 Lisp_Face *f = XFACE (obj);
244 251
245 if (EQ (prop, Qforeground) || 252 if (EQ (prop, Qforeground) ||
246 EQ (prop, Qbackground) || 253 EQ (prop, Qbackground) ||
247 EQ (prop, Qfont) || 254 EQ (prop, Qfont) ||
248 EQ (prop, Qdisplay_table) || 255 EQ (prop, Qdisplay_table) ||
249 EQ (prop, Qbackground_pixmap) || 256 EQ (prop, Qbackground_pixmap) ||
250 EQ (prop, Qunderline) || 257 EQ (prop, Qbackground_placement) ||
251 EQ (prop, Qstrikethru) || 258 EQ (prop, Qunderline) ||
252 EQ (prop, Qhighlight) || 259 EQ (prop, Qstrikethru) ||
253 EQ (prop, Qdim) || 260 EQ (prop, Qhighlight) ||
254 EQ (prop, Qblinking) || 261 EQ (prop, Qdim) ||
262 EQ (prop, Qblinking) ||
255 EQ (prop, Qreverse)) 263 EQ (prop, Qreverse))
256 return -1; 264 return -1;
257 265
258 if (EQ (prop, Qdoc_string)) 266 if (EQ (prop, Qdoc_string))
259 { 267 {
268 face_plist (Lisp_Object obj) 276 face_plist (Lisp_Object obj)
269 { 277 {
270 Lisp_Face *face = XFACE (obj); 278 Lisp_Face *face = XFACE (obj);
271 Lisp_Object result = face->plist; 279 Lisp_Object result = face->plist;
272 280
273 result = cons3 (Qreverse, face->reverse, result); 281 result = cons3 (Qreverse, face->reverse, result);
274 result = cons3 (Qblinking, face->blinking, result); 282 result = cons3 (Qblinking, face->blinking, result);
275 result = cons3 (Qdim, face->dim, result); 283 result = cons3 (Qdim, face->dim, result);
276 result = cons3 (Qhighlight, face->highlight, result); 284 result = cons3 (Qhighlight, face->highlight, result);
277 result = cons3 (Qstrikethru, face->strikethru, result); 285 result = cons3 (Qstrikethru, face->strikethru, result);
278 result = cons3 (Qunderline, face->underline, result); 286 result = cons3 (Qunderline, face->underline, result);
279 result = cons3 (Qbackground_pixmap, face->background_pixmap, result); 287 result = cons3 (Qbackground_placement, face->background_placement, result);
280 result = cons3 (Qdisplay_table, face->display_table, result); 288 result = cons3 (Qbackground_pixmap, face->background_pixmap, result);
281 result = cons3 (Qfont, face->font, result); 289 result = cons3 (Qdisplay_table, face->display_table, result);
282 result = cons3 (Qbackground, face->background, result); 290 result = cons3 (Qfont, face->font, result);
283 result = cons3 (Qforeground, face->foreground, result); 291 result = cons3 (Qbackground, face->background, result);
292 result = cons3 (Qforeground, face->foreground, result);
284 293
285 return result; 294 return result;
286 } 295 }
287 296
288 static const struct memory_description face_description[] = { 297 static const struct memory_description face_description[] = {
291 { XD_LISP_OBJECT, offsetof (Lisp_Face, foreground) }, 300 { XD_LISP_OBJECT, offsetof (Lisp_Face, foreground) },
292 { XD_LISP_OBJECT, offsetof (Lisp_Face, background) }, 301 { XD_LISP_OBJECT, offsetof (Lisp_Face, background) },
293 { XD_LISP_OBJECT, offsetof (Lisp_Face, font) }, 302 { XD_LISP_OBJECT, offsetof (Lisp_Face, font) },
294 { XD_LISP_OBJECT, offsetof (Lisp_Face, display_table) }, 303 { XD_LISP_OBJECT, offsetof (Lisp_Face, display_table) },
295 { XD_LISP_OBJECT, offsetof (Lisp_Face, background_pixmap) }, 304 { XD_LISP_OBJECT, offsetof (Lisp_Face, background_pixmap) },
305 { XD_LISP_OBJECT, offsetof (Lisp_Face, background_placement) },
296 { XD_LISP_OBJECT, offsetof (Lisp_Face, underline) }, 306 { XD_LISP_OBJECT, offsetof (Lisp_Face, underline) },
297 { XD_LISP_OBJECT, offsetof (Lisp_Face, strikethru) }, 307 { XD_LISP_OBJECT, offsetof (Lisp_Face, strikethru) },
298 { XD_LISP_OBJECT, offsetof (Lisp_Face, highlight) }, 308 { XD_LISP_OBJECT, offsetof (Lisp_Face, highlight) },
299 { XD_LISP_OBJECT, offsetof (Lisp_Face, dim) }, 309 { XD_LISP_OBJECT, offsetof (Lisp_Face, dim) },
300 { XD_LISP_OBJECT, offsetof (Lisp_Face, blinking) }, 310 { XD_LISP_OBJECT, offsetof (Lisp_Face, blinking) },
384 f->foreground = Qnil; 394 f->foreground = Qnil;
385 f->background = Qnil; 395 f->background = Qnil;
386 f->font = Qnil; 396 f->font = Qnil;
387 f->display_table = Qnil; 397 f->display_table = Qnil;
388 f->background_pixmap = Qnil; 398 f->background_pixmap = Qnil;
399 f->background_placement = Qnil;
389 f->underline = Qnil; 400 f->underline = Qnil;
390 f->strikethru = Qnil; 401 f->strikethru = Qnil;
391 f->highlight = Qnil; 402 f->highlight = Qnil;
392 f->dim = Qnil; 403 f->dim = Qnil;
393 f->blinking = Qnil; 404 f->blinking = Qnil;
844 set_color_attached_to (f->background, face, Qbackground); 855 set_color_attached_to (f->background, face, Qbackground);
845 f->font = Fmake_specifier (Qfont); 856 f->font = Fmake_specifier (Qfont);
846 set_font_attached_to (f->font, face, Qfont); 857 set_font_attached_to (f->font, face, Qfont);
847 f->background_pixmap = Fmake_specifier (Qimage); 858 f->background_pixmap = Fmake_specifier (Qimage);
848 set_image_attached_to (f->background_pixmap, face, Qbackground_pixmap); 859 set_image_attached_to (f->background_pixmap, face, Qbackground_pixmap);
860 f->background_placement = Fmake_specifier (Qface_background_placement);
861 set_face_background_placement_attached_to (f->background_placement, face);
849 f->display_table = Fmake_specifier (Qdisplay_table); 862 f->display_table = Fmake_specifier (Qdisplay_table);
850 f->underline = Fmake_specifier (Qface_boolean); 863 f->underline = Fmake_specifier (Qface_boolean);
851 set_face_boolean_attached_to (f->underline, face, Qunderline); 864 set_face_boolean_attached_to (f->underline, face, Qunderline);
852 f->strikethru = Fmake_specifier (Qface_boolean); 865 f->strikethru = Fmake_specifier (Qface_boolean);
853 set_face_boolean_attached_to (f->strikethru, face, Qstrikethru); 866 set_face_boolean_attached_to (f->strikethru, face, Qstrikethru);
872 set_specifier_fallback (f->font, 885 set_specifier_fallback (f->font,
873 Fget (Vdefault_face, Qfont, Qunbound)); 886 Fget (Vdefault_face, Qfont, Qunbound));
874 set_specifier_fallback (f->background_pixmap, 887 set_specifier_fallback (f->background_pixmap,
875 Fget (Vdefault_face, Qbackground_pixmap, 888 Fget (Vdefault_face, Qbackground_pixmap,
876 Qunbound)); 889 Qunbound));
890 set_specifier_fallback (f->background_placement,
891 Fget (Vdefault_face, Qbackground_placement,
892 Qunbound));
877 set_specifier_fallback (f->display_table, 893 set_specifier_fallback (f->display_table,
878 Fget (Vdefault_face, Qdisplay_table, Qunbound)); 894 Fget (Vdefault_face, Qdisplay_table, Qunbound));
879 set_specifier_fallback (f->underline, 895 set_specifier_fallback (f->underline,
880 Fget (Vdefault_face, Qunderline, Qunbound)); 896 Fget (Vdefault_face, Qunderline, Qunbound));
881 set_specifier_fallback (f->strikethru, 897 set_specifier_fallback (f->strikethru,
1066 mark_object (cachel->face); 1082 mark_object (cachel->face);
1067 mark_object (cachel->foreground); 1083 mark_object (cachel->foreground);
1068 mark_object (cachel->background); 1084 mark_object (cachel->background);
1069 mark_object (cachel->display_table); 1085 mark_object (cachel->display_table);
1070 mark_object (cachel->background_pixmap); 1086 mark_object (cachel->background_pixmap);
1087 mark_object (cachel->background_placement);
1071 } 1088 }
1072 } 1089 }
1073 1090
1074 /* ensure that the given cachel contains an updated font value for 1091 /* ensure that the given cachel contains an updated font value for
1075 the given charset. Return the updated font value (which can be 1092 the given charset. Return the updated font value (which can be
1422 || WINDOW_FACE_CACHEL (DOMAIN_XWINDOW (domain), DEFAULT_INDEX)) 1439 || WINDOW_FACE_CACHEL (DOMAIN_XWINDOW (domain), DEFAULT_INDEX))
1423 { 1440 {
1424 FROB (background_pixmap); 1441 FROB (background_pixmap);
1425 MAYBE_UNFROB_BACKGROUND_PIXMAP; 1442 MAYBE_UNFROB_BACKGROUND_PIXMAP;
1426 } 1443 }
1444
1445 FROB (background_placement);
1446
1427 #undef FROB 1447 #undef FROB
1428 #undef MAYBE_UNFROB_BACKGROUND_PIXMAP 1448 #undef MAYBE_UNFROB_BACKGROUND_PIXMAP
1429 1449
1430 ensure_face_cachel_contains_charset (cachel, domain, Vcharset_ascii); 1450 ensure_face_cachel_contains_charset (cachel, domain, Vcharset_ascii);
1431 1451
1485 1505
1486 FROB (foreground); 1506 FROB (foreground);
1487 FROB (background); 1507 FROB (background);
1488 FROB (display_table); 1508 FROB (display_table);
1489 FROB (background_pixmap); 1509 FROB (background_pixmap);
1510 FROB (background_placement);
1490 FROB (underline); 1511 FROB (underline);
1491 FROB (strikethru); 1512 FROB (strikethru);
1492 FROB (highlight); 1513 FROB (highlight);
1493 FROB (dim); 1514 FROB (dim);
1494 FROB (reverse); 1515 FROB (reverse);
1535 for (i = 0; i < NUM_LEADING_BYTES; i++) 1556 for (i = 0; i < NUM_LEADING_BYTES; i++)
1536 cachel->font[i] = Qunbound; 1557 cachel->font[i] = Qunbound;
1537 } 1558 }
1538 cachel->display_table = Qunbound; 1559 cachel->display_table = Qunbound;
1539 cachel->background_pixmap = Qunbound; 1560 cachel->background_pixmap = Qunbound;
1561 cachel->background_placement = Qunbound;
1540 FACE_CACHEL_FONT_SPECIFIED (cachel)->size = sizeof(cachel->font_specified); 1562 FACE_CACHEL_FONT_SPECIFIED (cachel)->size = sizeof(cachel->font_specified);
1541 FACE_CACHEL_FONT_UPDATED (cachel)->size = sizeof(cachel->font_updated); 1563 FACE_CACHEL_FONT_UPDATED (cachel)->size = sizeof(cachel->font_updated);
1542 } 1564 }
1543 1565
1544 /* Retrieve the index to a cachel for window W that corresponds to 1566 /* Retrieve the index to a cachel for window W that corresponds to
1900 int default_face = EQ (face, Vdefault_face); 1922 int default_face = EQ (face, Vdefault_face);
1901 1923
1902 /* If the locale could affect the frame value, then call 1924 /* If the locale could affect the frame value, then call
1903 update_EmacsFrames just in case. */ 1925 update_EmacsFrames just in case. */
1904 if (default_face && 1926 if (default_face &&
1905 (EQ (property, Qforeground) || 1927 (EQ (property, Qforeground) ||
1906 EQ (property, Qbackground) || 1928 EQ (property, Qbackground) ||
1907 EQ (property, Qfont))) 1929 EQ (property, Qfont)))
1908 update_EmacsFrames (locale, property); 1930 update_EmacsFrames (locale, property);
1909 1931
1910 if (WINDOWP (locale)) 1932 if (WINDOWP (locale))
1911 { 1933 {
1995 COPY_PROPERTY (foreground); 2017 COPY_PROPERTY (foreground);
1996 COPY_PROPERTY (background); 2018 COPY_PROPERTY (background);
1997 COPY_PROPERTY (font); 2019 COPY_PROPERTY (font);
1998 COPY_PROPERTY (display_table); 2020 COPY_PROPERTY (display_table);
1999 COPY_PROPERTY (background_pixmap); 2021 COPY_PROPERTY (background_pixmap);
2022 COPY_PROPERTY (background_placement);
2000 COPY_PROPERTY (underline); 2023 COPY_PROPERTY (underline);
2001 COPY_PROPERTY (strikethru); 2024 COPY_PROPERTY (strikethru);
2002 COPY_PROPERTY (highlight); 2025 COPY_PROPERTY (highlight);
2003 COPY_PROPERTY (dim); 2026 COPY_PROPERTY (dim);
2004 COPY_PROPERTY (blinking); 2027 COPY_PROPERTY (blinking);
2125 DEFSYMBOL (Qforeground); 2148 DEFSYMBOL (Qforeground);
2126 DEFSYMBOL (Qbackground); 2149 DEFSYMBOL (Qbackground);
2127 /* Qfont defined in general.c */ 2150 /* Qfont defined in general.c */
2128 DEFSYMBOL (Qdisplay_table); 2151 DEFSYMBOL (Qdisplay_table);
2129 DEFSYMBOL (Qbackground_pixmap); 2152 DEFSYMBOL (Qbackground_pixmap);
2153 DEFSYMBOL (Qbackground_placement);
2130 DEFSYMBOL (Qunderline); 2154 DEFSYMBOL (Qunderline);
2131 DEFSYMBOL (Qstrikethru); 2155 DEFSYMBOL (Qstrikethru);
2132 /* Qhighlight, Qreverse defined in general.c */ 2156 /* Qhighlight, Qreverse defined in general.c */
2133 DEFSYMBOL (Qdim); 2157 DEFSYMBOL (Qdim);
2134 DEFSYMBOL (Qblinking); 2158 DEFSYMBOL (Qblinking);
2198 syms[n++] = Qforeground; 2222 syms[n++] = Qforeground;
2199 syms[n++] = Qbackground; 2223 syms[n++] = Qbackground;
2200 syms[n++] = Qfont; 2224 syms[n++] = Qfont;
2201 syms[n++] = Qdisplay_table; 2225 syms[n++] = Qdisplay_table;
2202 syms[n++] = Qbackground_pixmap; 2226 syms[n++] = Qbackground_pixmap;
2227 syms[n++] = Qbackground_placement;
2203 syms[n++] = Qunderline; 2228 syms[n++] = Qunderline;
2204 syms[n++] = Qstrikethru; 2229 syms[n++] = Qstrikethru;
2205 syms[n++] = Qhighlight; 2230 syms[n++] = Qhighlight;
2206 syms[n++] = Qdim; 2231 syms[n++] = Qdim;
2207 syms[n++] = Qblinking; 2232 syms[n++] = Qblinking;
2516 set_specifier_fallback (Fget (Vmodeline_face, Qbackground, Qunbound), 2541 set_specifier_fallback (Fget (Vmodeline_face, Qbackground, Qunbound),
2517 Fget (Vgui_element_face, Qbackground, Qunbound)); 2542 Fget (Vgui_element_face, Qbackground, Qunbound));
2518 set_specifier_fallback (Fget (Vmodeline_face, Qbackground_pixmap, Qnil), 2543 set_specifier_fallback (Fget (Vmodeline_face, Qbackground_pixmap, Qnil),
2519 Fget (Vgui_element_face, Qbackground_pixmap, 2544 Fget (Vgui_element_face, Qbackground_pixmap,
2520 Qunbound)); 2545 Qunbound));
2546 set_specifier_fallback (Fget (Vmodeline_face, Qbackground_placement, Qnil),
2547 Fget (Vgui_element_face, Qbackground_placement,
2548 Qunbound));
2521 2549
2522 /* toolbar is another gui element */ 2550 /* toolbar is another gui element */
2523 Vtoolbar_face = Fmake_face (Qtoolbar, 2551 Vtoolbar_face = Fmake_face (Qtoolbar,
2524 build_defer_string ("toolbar face"), 2552 build_defer_string ("toolbar face"),
2525 Qnil); 2553 Qnil);
2528 set_specifier_fallback (Fget (Vtoolbar_face, Qbackground, Qunbound), 2556 set_specifier_fallback (Fget (Vtoolbar_face, Qbackground, Qunbound),
2529 Fget (Vgui_element_face, Qbackground, Qunbound)); 2557 Fget (Vgui_element_face, Qbackground, Qunbound));
2530 set_specifier_fallback (Fget (Vtoolbar_face, Qbackground_pixmap, Qnil), 2558 set_specifier_fallback (Fget (Vtoolbar_face, Qbackground_pixmap, Qnil),
2531 Fget (Vgui_element_face, Qbackground_pixmap, 2559 Fget (Vgui_element_face, Qbackground_pixmap,
2532 Qunbound)); 2560 Qunbound));
2561 set_specifier_fallback (Fget (Vtoolbar_face, Qbackground_placement, Qnil),
2562 Fget (Vgui_element_face, Qbackground_placement,
2563 Qunbound));
2533 2564
2534 /* vertical divider is another gui element */ 2565 /* vertical divider is another gui element */
2535 Vvertical_divider_face = Fmake_face (Qvertical_divider, 2566 Vvertical_divider_face = Fmake_face (Qvertical_divider,
2536 build_defer_string ("vertical divider face"), 2567 build_defer_string ("vertical divider face"),
2537 Qnil); 2568 Qnil);
2541 set_specifier_fallback (Fget (Vvertical_divider_face, Qbackground, Qunbound), 2572 set_specifier_fallback (Fget (Vvertical_divider_face, Qbackground, Qunbound),
2542 Fget (Vgui_element_face, Qbackground, Qunbound)); 2573 Fget (Vgui_element_face, Qbackground, Qunbound));
2543 set_specifier_fallback (Fget (Vvertical_divider_face, Qbackground_pixmap, 2574 set_specifier_fallback (Fget (Vvertical_divider_face, Qbackground_pixmap,
2544 Qunbound), 2575 Qunbound),
2545 Fget (Vgui_element_face, Qbackground_pixmap, 2576 Fget (Vgui_element_face, Qbackground_pixmap,
2577 Qunbound));
2578 set_specifier_fallback (Fget (Vvertical_divider_face, Qbackground_placement,
2579 Qnil),
2580 Fget (Vgui_element_face, Qbackground_placement,
2546 Qunbound)); 2581 Qunbound));
2547 2582
2548 /* widget is another gui element */ 2583 /* widget is another gui element */
2549 Vwidget_face = Fmake_face (Qwidget, 2584 Vwidget_face = Fmake_face (Qwidget,
2550 build_defer_string ("widget face"), 2585 build_defer_string ("widget face"),