X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Ffaces.c;h=c7d8157c6107479250b65775b0df68a2da48c47c;hb=4082f470d7c6075a5c04c1bdf6e9e3f27c9700d5;hp=3ec7039430e621a110f28dafa8818f7251da7ef4;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921;p=chise%2Fxemacs-chise.git- diff --git a/src/faces.c b/src/faces.c index 3ec7039..c7d8157 100644 --- a/src/faces.c +++ b/src/faces.c @@ -55,7 +55,7 @@ Lisp_Object Qinit_global_faces; calling Ffind_face. */ Lisp_Object Vdefault_face, Vmodeline_face, Vgui_element_face; Lisp_Object Vleft_margin_face, Vright_margin_face, Vtext_cursor_face; -Lisp_Object Vpointer_face, Vvertical_divider_face, Vtoolbar_face; +Lisp_Object Vpointer_face, Vvertical_divider_face, Vtoolbar_face, Vwidget_face; /* Qdefault, Qhighlight defined in general.c */ Lisp_Object Qmodeline, Qgui_element, Qleft_margin, Qright_margin, Qtext_cursor; @@ -266,7 +266,7 @@ face_plist (Lisp_Object obj) DEFINE_LRECORD_IMPLEMENTATION_WITH_PROPS ("face", face, mark_face, print_face, 0, face_equal, - face_hash, face_getprop, + face_hash, 0, face_getprop, face_putprop, face_remprop, face_plist, struct Lisp_Face); @@ -358,7 +358,7 @@ static struct Lisp_Face * allocate_face (void) { struct Lisp_Face *result = - alloc_lcrecord_type (struct Lisp_Face, lrecord_face); + alloc_lcrecord_type (struct Lisp_Face, &lrecord_face); reset_face (result); return result; @@ -1091,7 +1091,7 @@ ensure_face_cachel_contains_charset (struct face_cachel *cachel, void ensure_face_cachel_complete (struct face_cachel *cachel, - Lisp_Object domain, unsigned char *charsets) + Lisp_Object domain, Charset_ID *charsets) { int i; @@ -1106,7 +1106,7 @@ ensure_face_cachel_complete (struct face_cachel *cachel, void face_cachel_charset_font_metric_info (struct face_cachel *cachel, - unsigned char *charsets, + Charset_ID *charsets, struct font_metric_info *fm) { int i; @@ -1736,7 +1736,7 @@ LOCALE, TAG-SET, EXACT-P, and HOW-TO-ADD are as in `copy-specifier'. void syms_of_faces (void) { - /* Qdefault defined in general.c */ + /* Qdefault & Qwidget defined in general.c */ defsymbol (&Qmodeline, "modeline"); defsymbol (&Qgui_element, "gui-element"); defsymbol (&Qleft_margin, "left-margin"); @@ -1793,6 +1793,8 @@ vars_of_faces (void) Vdefault_face = Qnil; staticpro (&Vgui_element_face); Vgui_element_face = Qnil; + staticpro (&Vwidget_face); + Vwidget_face = Qnil; staticpro (&Vmodeline_face); Vmodeline_face = Qnil; staticpro (&Vtoolbar_face); @@ -1825,7 +1827,7 @@ vars_of_faces (void) syms[n++] = Qblinking; syms[n++] = Qreverse; - Vbuilt_in_face_specifiers = pure_list (n, syms); + Vbuilt_in_face_specifiers = Flist (n, syms); staticpro (&Vbuilt_in_face_specifiers); } } @@ -1998,6 +2000,18 @@ complex_vars_of_faces (void) Fget (Vgui_element_face, Qbackground_pixmap, Qunbound)); + /* widget is another gui element */ + Vwidget_face = Fmake_face (Qwidget, + build_string ("widget face"), + Qnil); + set_specifier_fallback (Fget (Vwidget_face, Qforeground, Qunbound), + Fget (Vgui_element_face, Qforeground, Qunbound)); + set_specifier_fallback (Fget (Vwidget_face, Qbackground, Qunbound), + Fget (Vgui_element_face, Qbackground, Qunbound)); + set_specifier_fallback (Fget (Vwidget_face, Qbackground_pixmap, Qnil), + Fget (Vgui_element_face, Qbackground_pixmap, + Qunbound)); + Vleft_margin_face = Fmake_face (Qleft_margin, build_string ("left margin face"), Qnil);