Mercurial > hg > xemacs-beta
diff src/faces.h @ 5624:c39052c921b5
New "foreback" face property.
-------------------- ChangeLog entries follow: --------------------
lisp/ChangeLog addition:
2011-12-27 Didier Verna <didier@xemacs.org>
* cl-macs.el (face-foreback): New defsetf.
* faces.el (set-face-property): Document the foreback property.
* faces.el (face-foreback):
* faces.el (face-foreback-instance):
* faces.el (face-foreback-name):
* faces.el (set-face-foreback): New functions.
* faces.el (face-equal):
* faces.el (init-other-random-faces):
* cus-face.el (custom-face-attributes):
* x-faces.el (x-init-face-from-resources): Handle the foreback
property.
src/ChangeLog addition:
2011-12-27 Didier Verna <didier@xemacs.org>
* faces.h (struct Lisp_Face): New 'foreback slot.
* faces.h (struct face_cachel): New 'foreback and
'foreback_specified slots.
* faces.h (WINDOW_FACE_CACHEL_FOREBACK):
* faces.h (FACE_FOREBACK): New macros.
* faces.c: Declare Qforeback.
* lisp.h: Externalize it.
* faces.c (syms_of_faces): Define it.
* faces.c (vars_of_faces): Update built-in face specifiers.
* faces.c (complex_vars_of_faces): Update specifier fallbacks.
* faces.c (mark_face):
* faces.c (face_equal):
* faces.c (face_getprop):
* faces.c (face_putprop):
* faces.c (face_remprop):
* faces.c (face_plist):
* faces.c (reset_face):
* faces.c (update_face_inheritance_mapper):
* faces.c (Fmake_face):
* faces.c (mark_face_cachels):
* faces.c (update_face_cachel_data):
* faces.c (merge_face_cachel_data):
* faces.c (reset_face_cachel):
* faces.c (face_property_was_changed):
* faces.c (Fcopy_face):
* fontcolor.c (face_color_validate): Handle the foreback property.
* redisplay-msw.c (mswindows_output_blank):
* redisplay-msw.c (mswindows_output_string):
* redisplay-output.c (redisplay_clear_region):
* redisplay-xlike-inc.c (XLIKE_output_string):
* redisplay-xlike-inc.c (XLIKE_output_blank): Use the face's
foreback color instead of the foreground one for drawing a
background bitmap.
author | Didier Verna <didier@xemacs.org> |
---|---|
date | Tue, 27 Dec 2011 17:07:23 +0100 |
parents | 75ad4969a16d |
children |
line wrap: on
line diff
--- a/src/faces.h Tue Dec 27 15:37:03 2011 +0100 +++ b/src/faces.h Tue Dec 27 17:07:23 2011 +0100 @@ -41,6 +41,7 @@ a face. */ Lisp_Object foreground; + Lisp_Object foreback; Lisp_Object background; Lisp_Object font; @@ -160,6 +161,7 @@ faces. This is what the _specified flags below are for. */ Lisp_Object foreground; + Lisp_Object foreback; Lisp_Object background; /* There are currently 128 or 129 possible charsets under Mule. For the moment we just take the easy way out and allocate space for each @@ -188,6 +190,7 @@ DECLARE_INLINE_LISP_BIT_VECTOR(NUM_LEADING_BYTES) font_specified; unsigned int foreground_specified :1; + unsigned int foreback_specified :1; unsigned int background_specified :1; unsigned int display_table_specified :1; unsigned int background_pixmap_specified :1; @@ -331,6 +334,8 @@ (WINDOW_FACE_CACHEL (window, index)->face) #define WINDOW_FACE_CACHEL_FOREGROUND(window, index) \ (WINDOW_FACE_CACHEL (window, index)->foreground) +#define WINDOW_FACE_CACHEL_FOREBACK(window, index) \ + (WINDOW_FACE_CACHEL (window, index)->foreback) #define WINDOW_FACE_CACHEL_BACKGROUND(window, index) \ (WINDOW_FACE_CACHEL (window, index)->background) /* #### This can be referenced by various functions, @@ -391,6 +396,8 @@ #define FACE_FOREGROUND(face, domain) \ FACE_PROPERTY_INSTANCE (face, Qforeground, domain, 0, Qzero) +#define FACE_FOREBACK(face, domain) \ + FACE_PROPERTY_INSTANCE (face, Qforeback, domain, 0, Qzero) #define FACE_BACKGROUND(face, domain) \ FACE_PROPERTY_INSTANCE (face, Qbackground, domain, 0, Qzero)