annotate man/lispref/faces.texi @ 1318:b531bf8658e9

[xemacs-hg @ 2003-02-21 06:56:46 by ben] redisplay fixes et al. PROBLEMS: Add comment about Cygwin, unexec and sysmalloc. Move some non-general stuff out of general. Make a section for x86. configure.in: Add check for broken alloca in funcalls. mule/mule-cmds.el: Alias file-name to native not vice-versa. Do set EOL of native but not of process output to fix various problems and be consistent with code-init.el. code-cmds.el: Return a name not a coding system. code-init.el: Reindent. Remove `file-name' since it should always be the same as native. unicode.el: Rename to load-unicode-mapping-table as suggested by the anonymous (but rather Turnbullian) comment in unicode.c. xemacs.dsp: Add /k to default build. alloc.c: Make gc_currently_forbidden static. config.h.in, lisp.h: Move some stuff to lisp.h. console-gtk.h, console-impl.h, console-msw.h, console-x.h, event-Xt.c, event-msw.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-x.c, gtk-xemacs.c: Remove duplicated code to redraw exposed area. Add deadbox method needed by the generalized redraw code. Defer redrawing if already in redisplay. frame-msw.c, event-stream.c, frame.c: Add comments about calling Lisp. debug.c, general-slots.h: Move generalish symbols to general-slots.h. doprnt.c: reindent. lisp.h, dynarr.c: Add debug code for locking a dynarr to catch invalid mods. Use in redisplay.c. eval.c: file-coding.c: Define file-name as alias for native not vice-versa. frame-gtk.c, frame-x.c: Move Qwindow_id to general-slots. dialog-msw.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, gui.c, gui.h, menubar-msw.c, menubar.c: Ensure that various glyph functions that eval within redisplay protect the evals. Same for calls to internal_equal(). Modify various functions, e.g. gui_item_*(), to protect evals within redisplay, taking an in_redisplay parameter if it's possible for them to be called both inside and outside of redisplay. gutter.c: Defer specifier-changed updating till after redisplay, if necessary, since we need to enter redisplay to do it. gutter.c: Do nothing if in redisplay. lisp.h: Add version of alloca() for use in function calls. lisp.h: Add XCAD[D+]R up to 6 D's, and aliases X1ST, X2ND, etc. frame.c, frame.h, redisplay.c, redisplay.h, signal.c, toolbar.c: Redo critical-section code and move from frame.c to redisplay.c. Require that every place inside of redisplay catch errors itself, not at the edge of the critical section (thereby bypassing the rest of redisplay and leaving things in an inconsistent state). Introduce separate means of holding frame-size changes without entering a complete critical section. Introduce "post-redisplay" methods for deferring things till after redisplay. Abort if we enter redisplay reentrantly. Disable all quit checking in redisplay since it's too dangerous. Ensure that all calls to QUIT trigger an abort if unprotected. redisplay.c, scrollbar-gtk.c, scrollbar-x.c, scrollbar.c: Create enter/exit_redisplay_critical_section_maybe() for code that needs to ensure it's in a critical section but doesn't interfere with an existing critical section. sysdep.c: Use _wexecve() when under Windows NT for Unicode correctness. text.c, text.h: Add new_dfc() functions, which return an alloca()ed value rather than requiring an lvalue. (Not really used yet; used in another workspace, to come.) Add some macros for SIZED_EXTERNAL. Update the encoding aliases after involved scrutinization of the X manual. unicode.c: Answer the anonymous but suspiciously Turnbullian questions. Rename parse-unicode-translation-table to load-unicode-mapping-table, as suggested.
author ben
date Fri, 21 Feb 2003 06:57:21 +0000
parents c6facab13185
children 4657b5a54253
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 @c -*-texinfo-*-
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 @c This is part of the XEmacs Lisp Reference Manual.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 @c Copyright (C) 1995 Ben Wing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 @c See the file lispref.texi for copying conditions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 @setfilename ../../info/faces.info
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 @node Faces and Window-System Objects, Glyphs, Specifiers, top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 @chapter Faces and Window-System Objects
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 @cindex faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 @cindex window-system objects
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 * Faces:: Controlling the way text looks.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 * Fonts:: Controlling the typeface of text.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 * Colors:: Controlling the color of text and pixmaps.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 @node Faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 @section Faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 A @dfn{face} is a named collection of graphical properties: font,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 foreground color, background color, background pixmap, optional
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 underlining, and (on TTY devices) whether the text is to be highlighted,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 dimmed, blinking, or displayed in reverse video. Faces control the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 display of text on the screen. Every face has a name, which is a symbol
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 such as @code{default} or @code{modeline}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 Each built-in property of a face is controlled using a specifier,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 which allows it to have separate values in particular buffers, frames,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 windows, and devices and to further vary according to device type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 (X or TTY) and device class (color, mono, or grayscale).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 @xref{Specifiers}, for more information.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 The face named @code{default} is used for ordinary text. The face named
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 @code{modeline} is used for displaying the modeline. The face named
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 @code{highlight} is used for highlighted extents (@pxref{Extents}). The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 faces named @code{left-margin} and @code{right-margin} are used for the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 left and right margin areas, respectively (@pxref{Annotations}). The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 face named @code{zmacs-region} is used for the highlighted region
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 between point and mark.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 * Merging Faces:: How XEmacs decides which face to use
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 for a character.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 * Basic Face Functions:: How to define and examine faces.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 * Face Properties:: How to access and modify a face's properties.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 * Face Convenience Functions:: Convenience functions for accessing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 particular properties of a face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 * Other Face Display Functions:: Other functions pertaining to how a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 a face appears.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 @node Merging Faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 @subsection Merging Faces for Display
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 Here are all the ways to specify which face to use for display of text:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 With defaults. Each frame has a @dfn{default face}, which is used for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 all text that doesn't somehow specify another face. The face named
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 @code{default} applies to the text area, while the faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 @code{left-margin} and @code{right-margin} apply to the left and right
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 margin areas.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 With text properties. A character may have a @code{face} property; if so,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 it's displayed with that face. (Text properties are actually implemented
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 in terms of extents.) @xref{Text Properties}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 With extents. An extent may have a @code{face} property, which applies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 to all the text covered by the extent; in addition, if the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 @code{highlight} property is set, the @code{highlight} property applies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 when the mouse moves over the extent or if the extent is explicitly
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 highlighted. @xref{Extents}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 With annotations. Annotations that are inserted into a buffer can specify
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 their own face. (Annotations are actually implemented in terms of extents.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 @xref{Annotations}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 If these various sources together specify more than one face for a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 particular character, XEmacs merges the properties of the various faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 specified. Extents, text properties, and annotations all use the same
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 underlying representation (as extents). When multiple extents cover one
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 character, an extent with higher priority overrides those with lower
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 priority. @xref{Extents}. If no extent covers a particular character,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 the @code{default} face is used.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 @cindex background pixmap
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 If a background pixmap is specified, it determines what will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 displayed in the background of text characters. If the background
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 pixmap is actually a pixmap, with its colors specified, those colors are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 used; if it is a bitmap, the face's foreground and background colors are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 used to color it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 @node Basic Face Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 @subsection Basic Functions for Working with Faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 The properties a face can specify include the font, the foreground
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 color, the background color, the background pixmap, the underlining,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 the display table, and (for TTY devices) whether the text is to be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 highlighted, dimmed, blinking, or displayed in reverse video.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 The face can also leave these unspecified, causing them to assume the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 value of the corresponding property of the @code{default} face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 Here are the basic primitives for working with faces.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111 @defun make-face name &optional doc-string temporary
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 This function defines and returns a new face named @var{name}, initially
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 with all properties unspecified. It does nothing if there is already a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 face named @var{name}. Optional argument @var{doc-string} specifies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115 an explanatory string used for descriptive purposes. If optional
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 argument @var{temporary} is non-@code{nil}, the face will automatically
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 disappear when there are no more references to it anywhere in text or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 Lisp code (otherwise, the face will continue to exist indefinitely
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 even if it is not used).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 @defun face-list &optional temporary
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 This function returns a list of the names of all defined faces. If
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 @var{temporary} is @code{nil}, only the permanent faces are included.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 If it is @code{t}, only the temporary faces are included. If it is any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 other non-@code{nil} value both permanent and temporary are included.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 @defun facep object
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
130 This function returns @code{t} if @var{object} is a face, else @code{nil}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
133 @defun copy-face old-face new-name &optional locale tag-set exact-p how-to-add
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 This function defines a new face named @var{new-name} which is a copy of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135 the existing face named @var{old-face}. If there is already a face
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 named @var{new-name}, then it alters the face to have the same
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
137 properties as @var{old-face}.
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
138
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
139 @var{locale}, @var{tag-set}, @var{exact-p} and @var{how-to-add} let you
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
140 copy just parts of the old face rather than the whole face, and are as
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
141 in @code{copy-specifier} (@pxref{Specifiers}).
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 @node Face Properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 @subsection Face Properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 You can examine and modify the properties of an existing face with the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 following functions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 The following symbols have predefined meanings:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 @table @code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 @item foreground
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 The foreground color of the face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 @item background
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 The background color of the face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 @item font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 The font used to display text covered by this face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 @item display-table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 The display table of the face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 @item background-pixmap
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 The pixmap displayed in the background of the face. Only used by faces
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 on X devices.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 @item underline
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 Underline all text covered by this face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 @item highlight
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 Highlight all text covered by this face. Only used by faces on TTY
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 devices.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 @item dim
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177 Dim all text covered by this face. Only used by faces on TTY devices.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 @item blinking
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 Blink all text covered by this face. Only used by faces on TTY devices.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 @item reverse
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 Reverse the foreground and background colors. Only used by faces on TTY
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 devices.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 @item doc-string
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 Description of what the face's normal use is. NOTE: This is not a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 specifier, unlike all the other built-in properties, and cannot contain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 locale-specific values.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
192 @defun set-face-property face property value &optional locale tag-set how-to-add
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193 This function changes a property of a @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 For built-in properties, the actual value of the property is a specifier
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 and you cannot change this; but you can change the specifications within
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197 the specifier, and that is what this function will do. For user-defined
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198 properties, you can use this function to either change the actual value
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 of the property or, if this value is a specifier, change the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 specifications within it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 If @var{property} is a built-in property, the specifications to be added
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 to this property can be supplied in many different ways:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206 If @var{value} is a simple instantiator (e.g. a string naming a font or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207 color) or a list of instantiators, then the instantiator(s) will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208 added as a specification of the property for the given @var{locale}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209 (which defaults to @code{global} if omitted).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 If @var{value} is a list of specifications (each of which is a cons of a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212 locale and a list of instantiators), then @var{locale} must be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 @code{nil} (it does not make sense to explicitly specify a locale in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 this case), and specifications will be added as given.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216 If @var{value} is a specifier (as would be returned by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
217 @code{face-property} if no @var{locale} argument is given), then some or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 all of the specifications in the specifier will be added to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219 property. In this case, the function is really equivalent to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220 @code{copy-specifier} and @var{locale} has the same semantics (if it is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221 a particular locale, the specification for the locale will be copied; if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222 a locale type, specifications for all locales of that type will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 copied; if @code{nil} or @code{all}, then all specifications will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 copied).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227 @var{how-to-add} should be either @code{nil} or one of the symbols
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228 @code{prepend}, @code{append}, @code{remove-tag-set-prepend},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229 @code{remove-tag-set-append}, @code{remove-locale},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 @code{remove-locale-type}, or @code{remove-all}. See
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
231 @code{copy-specifier} and @code{add-spec-to-specifier} for a description
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
232 of what each of these means. Most of the time, you do not need to worry
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
233 about this argument; the default behavior usually is fine.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
234
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
235 In general, it is OK to pass an instance object (e.g. as returned by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
236 @code{face-property-instance}) as an instantiator in place of an actual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
237 instantiator. In such a case, the instantiator used to create that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
238 instance object will be used (for example, if you set a font-instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239 object as the value of the @code{font} property, then the font name used
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 to create that object will be used instead). If some cases, however,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241 doing this conversion does not make sense, and this will be noted in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
242 documentation for particular types of instance objects.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
243
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
244 If @var{property} is not a built-in property, then this function will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
245 simply set its value if @var{locale} is @code{nil}. However, if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246 @var{locale} is given, then this function will attempt to add
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247 @var{value} as the instantiator for the given @var{locale}, using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
248 @code{add-spec-to-specifier}. If the value of the property is not a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
249 specifier, it will automatically be converted into a @code{generic}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
250 specifier.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
251 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
253 @defun remove-face-property face property &optional locale tag-set exact-p
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
254 This function removes a property of a @var{face}.
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
255
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
256 For built-in properties, this is analogous to @code{remove-specifier}.
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
257 For more information, @xref{Other Specification Functions}.
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
258
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
259 When @var{property} is not a built-in property, this function will just
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
260 remove its value if @var{locale} is @code{nil} or @code{all}. However,
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
261 if @var{locale} is other than that, this function will attempt to remove
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
262 @var{value} as the instantiator for the given @var{locale} with
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
263 @code{remove-specifier}. If the value of the property is not a
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
264 specifier, it will be converted into a @code{generic} specifier
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
265 automatically.
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
266 @end defun
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
267
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
268 @defun face-property face property &optional locale tag-set exact-p
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
269 This function returns @var{face}'s value of the given @var{property}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
271 If @var{locale} is omitted, the @var{face}'s actual value for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272 @var{property} will be returned. For built-in properties, this will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 a specifier object of a type appropriate to the property (e.g. a font or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
274 color specifier). For other properties, this could be anything.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
275
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
276 If @var{locale} is supplied, then instead of returning the actual value,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
277 the specification(s) for the given locale or locale type will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
278 returned. This will only work if the actual value of @var{property} is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
279 a specifier (this will always be the case for built-in properties, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
280 not or not may apply to user-defined properties). If the actual value
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
281 of @var{property} is not a specifier, this value will simply be returned
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
282 regardless of @var{locale}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
283
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
284 The return value will be a list of instantiators (e.g. strings
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
285 specifying a font or color name), or a list of specifications, each of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
286 which is a cons of a locale and a list of instantiators. Specifically,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
287 if @var{locale} is a particular locale (a buffer, window, frame, device,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
288 or @code{global}), a list of instantiators for that locale will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
289 returned. Otherwise, if @var{locale} is a locale type (one of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
290 symbols @code{buffer}, @code{window}, @code{frame}, or @code{device}),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
291 the specifications for all locales of that type will be returned.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
292 Finally, if @var{locale} is @code{all}, the specifications for all
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
293 locales of all types will be returned.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
294
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
295 The specifications in a specifier determine what the value of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
296 @var{property} will be in a particular @dfn{domain} or set of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
297 circumstances, which is typically a particular Emacs window along with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
298 the buffer it contains and the frame and device it lies within. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
299 value is derived from the instantiator associated with the most specific
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
300 locale (in the order buffer, window, frame, device, and @code{global})
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
301 that matches the domain in question. In other words, given a domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
302 (i.e. an Emacs window, usually), the specifier for @var{property} will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
303 first be searched for a specification whose locale is the buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
304 contained within that window; then for a specification whose locale is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
305 the window itself; then for a specification whose locale is the frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
306 that the window is contained within; etc. The first instantiator that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
307 is valid for the domain (usually this means that the instantiator is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
308 recognized by the device [i.e. the X server or TTY device] that the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
309 domain is on). The function @code{face-property-instance} actually does
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
310 all this, and is used to determine how to display the face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
311 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
312
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
313 @defun face-property-instance face property &optional domain default no-fallback
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
314 This function returns the instance of @var{face}'s @var{property} in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
315 specified @var{domain}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
316
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
317 Under most circumstances, @var{domain} will be a particular window, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
318 the returned instance describes how the specified property actually is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
319 displayed for that window and the particular buffer in it. Note that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
320 this may not be the same as how the property appears when the buffer is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
321 displayed in a different window or frame, or how the property appears in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
322 the same window if you switch to another buffer in that window; and in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
323 those cases, the returned instance would be different.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
324
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
325 The returned instance will typically be a color-instance, font-instance,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
326 or pixmap-instance object, and you can query it using the appropriate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
327 object-specific functions. For example, you could use
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
328 @code{color-instance-rgb-components} to find out the RGB (red, green,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
329 and blue) components of how the @code{background} property of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
330 @code{highlight} face is displayed in a particular window. The results
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
331 might be different from the results you would get for another window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
332 (perhaps the user specified a different color for the frame that window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
333 is on; or perhaps the same color was specified but the window is on a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
334 different X server, and that X server has different RGB values for the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
335 color from this one).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
336
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
337 @var{domain} defaults to the selected window if omitted.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
338
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
339 @var{domain} can be a frame or device, instead of a window. The value
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
340 returned for a such a domain is used in special circumstances when a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
341 more specific domain does not apply; for example, a frame value might be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
342 used for coloring a toolbar, which is conceptually attached to a frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
343 rather than a particular window. The value is also useful in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
344 determining what the value would be for a particular window within the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
345 frame or device, if it is not overridden by a more specific
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
346 specification.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
347
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
348 If @var{property} does not name a built-in property, its value will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
349 simply be returned unless it is a specifier object, in which case it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
350 will be instanced using @code{specifier-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
351
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
352 Optional arguments @var{default} and @var{no-fallback} are the same as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
353 in @code{specifier-instance}. @xref{Specifiers}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
354 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
355
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
356 @node Face Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
357 @subsection Face Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
358
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
359 @deffn Command set-face-foreground face color &optional locale tag-set how-to-add
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
360 @deffnx Command set-face-background face color &optional locale tag-set how-to-add
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
361 These functions set the foreground (respectively, background) color of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
362 face @var{face} to @var{color}. The argument @var{color} should be a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
363 string (the name of a color) or a color object as returned by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
364 @code{make-color} (@pxref{Colors}).
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
365 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
366
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
367 @deffn Command set-face-background-pixmap face pixmap &optional locale tag-set how-to-add
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
368 This function sets the background pixmap of face @var{face} to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
369 @var{pixmap}. The argument @var{pixmap} should be a string (the name of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
370 a bitmap or pixmap file; the directories listed in the variable
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
371 @code{x-bitmap-file-path} will be searched) or a glyph object as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
372 returned by @code{make-glyph} (@pxref{Glyphs}). The argument may also
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
373 be a list of the form @code{(@var{width} @var{height} @var{data})} where
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
374 @var{width} and @var{height} are the size in pixels, and @var{data} is a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
375 string, containing the raw bits of the bitmap.
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
376 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
377
1137
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
378 @deffn Command set-face-background-pixmap-file face file
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
379 This function sets the background pixmap of face @var{face} to the image
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
380 contained in @var{file}. This is just a simplified version of
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
381 @code{set-face-background-pixmap} which provides filename completion.
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
382 @end deffn
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
383
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
384 @deffn Command set-face-font face font &optional locale tag-set how-to-add
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
385 This function sets the font of face @var{face}. The argument @var{font}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
386 should be a string or a font object as returned by @code{make-font}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
387 (@pxref{Fonts}).
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
388 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
389
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
390 @deffn Command set-face-underline-p face underline-p &optional locale tag-set how-to-add
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
391 This function sets the underline property of face @var{face}.
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
392 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
393
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
394 @defun face-foreground face &optional locale tag-set exact-p
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
395 @defunx face-background face &optional locale tag-set exact-p
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
396 These functions return the foreground (respectively, background) color
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
397 specifier of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
398 @xref{Colors}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
399 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
400
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
401 @defun face-background-pixmap face &optional locale tag-set exact-p
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
402 This function return the background-pixmap glyph object of face
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
403 @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
404 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
405
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
406 @defun face-font face &optional locale tag-set exact-p
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
407 This function returns the font specifier of face @var{face}. (Note:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
408 This is not the same as the function @code{face-font} in FSF Emacs.)
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
409
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
410 @xref{Fonts}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
411 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
412
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
413 @defun face-font-name face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
414 This function returns the name of the font of face @var{face}, or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
415 @code{nil} if it is unspecified. This is basically equivalent to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
416 @code{(font-name (face-font @var{face}) @var{domain})} except that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
417 it does not cause an error if @var{face}'s font is @code{nil}. (This
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
418 function is named @code{face-font} in FSF Emacs.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
419 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
420
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
421 @defun face-underline-p face &optional locale
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
422 This function returns the underline property of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
423 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
424
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
425 @defun face-foreground-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
426 @defunx face-background-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
427 These functions return the foreground (respectively, background) color
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
428 specifier of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
429 @xref{Colors}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
430 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
431
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
432 @defun face-background-pixmap-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
433 This function return the background-pixmap glyph object of face
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
434 @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
435 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
436
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
437 @defun face-font-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
438 This function returns the font specifier of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
439 @xref{Fonts}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
440 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
441
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
442 @node Other Face Display Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
443 @subsection Other Face Display Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
444
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
445 @deffn Command invert-face face &optional locale
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
446 Swap the foreground and background colors of face @var{face}. If the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
447 face doesn't specify both foreground and background, then its foreground
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
448 and background are set to the default background and foreground.
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
449 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
450
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
451 @defun face-equal face1 face2 &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
452 This returns @code{t} if the faces @var{face1} and @var{face2} will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
453 display in the same way. @var{domain} is as in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
454 @code{face-property-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
455 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
456
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
457 @defun face-differs-from-default-p face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
458 This returns @code{t} if the face @var{face} displays differently from
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
459 the default face. @var{domain} is as in @code{face-property-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
460 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
461
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
462 @node Fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
463 @section Fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
464 @cindex fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
465
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
466 This section describes how to work with font specifier and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
467 font instance objects, which encapsulate fonts in the window system.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
468
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
469 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
470 * Font Specifiers:: Specifying how a font will appear.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
471 * Font Instances:: What a font specifier gets instanced as.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
472 * Font Instance Names:: The name of a font instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
473 * Font Instance Size:: The size of a font instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
474 * Font Instance Characteristics:: Display characteristics of font instances.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
475 * Font Convenience Functions:: Convenience functions that automatically
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
476 instance and retrieve the properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
477 of a font specifier.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
478 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
479
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
480 @node Font Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
481 @subsection Font Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
482
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
483 @defun font-specifier-p object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
484 This predicate returns @code{t} if @var{object} is a font specifier, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
485 @code{nil} otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
486 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
487
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
488 @defun make-font-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
489
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
490 Return a new @code{font} specifier object with the given specification
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
491 list. @var{spec-list} can be a list of specifications (each of which is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
492 a cons of a locale and a list of instantiators), a single instantiator,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
493 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
494 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
495
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
496 Valid instantiators for font specifiers are:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
497
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
498 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
499
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
500 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
501 A string naming a font (e.g. under X this might be
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
502 "-*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*" for a 14-point
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
503 upright medium-weight Courier font).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
504 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
505 A font instance (use that instance directly if the device matches,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
506 or use the string that generated it).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
507 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
508 A vector of no elements (only on TTY's; this means to set no font
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
509 at all, thus using the "natural" font of the terminal's text).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
510 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
511 A vector of one element (a face to inherit from).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
512 @end itemize
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
513 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
514
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
515 @node Font Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
516 @subsection Font Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
517
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
518 @defun font-instance-p object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
519 This predicate returns @code{t} if @var{object} is a font instance, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
520 @code{nil} otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
521 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
522
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
523 @defun make-font-instance name &optional device noerror
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
524 This function creates a new font-instance object of the specified name.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
525 @var{device} specifies the device this object applies to and defaults to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
526 the selected device. An error is signalled if the font is unknown or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
527 cannot be allocated; however, if @var{noerror} is non-@code{nil},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
528 @code{nil} is simply returned in this case.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
529
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
530 The returned object is a normal, first-class lisp object. The way you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
531 ``deallocate'' the font is the way you deallocate any other lisp object:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
532 you drop all pointers to it and allow it to be garbage collected. When
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
533 these objects are GCed, the underlying X data is deallocated as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
534 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
535
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
536 @node Font Instance Names
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
537 @subsection Font Instance Names
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
538 @cindex font instance name
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
539 @cindex available fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
540 @cindex fonts available
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
541
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
542 @defun list-fonts pattern &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
543 This function returns a list of font names matching the given pattern.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
544 @var{device} specifies which device to search for names, and defaults to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
545 the currently selected device.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
546 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
547
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
548 @defun font-instance-name font-instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
549 This function returns the name used to allocate @var{font-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
550 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
551
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
552 @defun font-instance-truename font-instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
553 This function returns the canonical name of the given font instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
554 Font names are patterns which may match any number of fonts, of which
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
555 the first found is used. This returns an unambiguous name for that font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
556 (but not necessarily its only unambiguous name).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
557 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
558
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
559 @node Font Instance Size
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
560 @subsection Font Instance Size
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
561 @cindex font instance size
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
562
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
563 @defun x-font-size font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
564 This function returns the nominal size of the given font. This is done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
565 by parsing its name, so it's likely to lose. X fonts can be specified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
566 (by the user) in either pixels or 10ths of points, and this returns the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
567 first one it finds, so you have to decide which units the returned value
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
568 is measured in yourself ...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
569 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
570
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
571 @defun x-find-larger-font font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
572 This function loads a new, slightly larger version of the given font (or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
573 font name). Returns the font if it succeeds, @code{nil} otherwise. If
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
574 scalable fonts are available, this returns a font which is 1 point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
575 larger. Otherwise, it returns the next larger version of this font that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
576 is defined.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
577 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
578
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
579 @defun x-find-smaller-font font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
580 This function loads a new, slightly smaller version of the given font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
581 (or font name). Returns the font if it succeeds, @code{nil} otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
582 If scalable fonts are available, this returns a font which is 1 point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
583 smaller. Otherwise, it returns the next smaller version of this font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
584 that is defined.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
585 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
586
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
587 @node Font Instance Characteristics
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
588 @subsection Font Instance Characteristics
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
589 @cindex font instance characteristics
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
590 @cindex characteristics of font instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
591 @cindex bold
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
592 @cindex demibold
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
593 @cindex italic
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
594 @cindex oblique
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
595
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
596 @defun font-instance-properties font-instance
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
597 This function returns the properties (an alist or @code{nil}) of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
598 @var{font-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
599 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
600
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
601 @defun x-make-font-bold font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
602 Given an X font specification, this attempts to make a ``bold'' font.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
603 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
604 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
605
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
606 @defun x-make-font-unbold font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
607 Given an X font specification, this attempts to make a non-bold font.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
608 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
609 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
610
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
611 @defun x-make-font-italic font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
612 Given an X font specification, this attempts to make an ``italic'' font.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
613 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
614 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
615
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
616 @defun x-make-font-unitalic font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
617 Given an X font specification, this attempts to make a non-italic font.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
618 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
619 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
620
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
621 @defun x-make-font-bold-italic font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
622 Given an X font specification, this attempts to make a ``bold-italic''
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
623 font. If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
624 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
625
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
626 @node Font Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
627 @subsection Font Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
628
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
629 @defun font-name font &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
630 This function returns the name of the @var{font} in the specified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
631 @var{domain}, if any. @var{font} should be a font specifier object and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
632 @var{domain} is normally a window and defaults to the selected window if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
633 omitted. This is equivalent to using @code{specifier-instance} and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
634 applying @code{font-instance-name} to the result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
635 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
636
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
637 @defun font-truename font &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
638 This function returns the truename of the @var{font} in the specified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
639 @var{domain}, if any. @var{font} should be a font specifier object and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
640 @var{domain} is normally a window and defaults to the selected window if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
641 omitted. This is equivalent to using @code{specifier-instance} and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
642 applying @code{font-instance-truename} to the result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
643 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
644
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
645 @defun font-properties font &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
646 This function returns the properties of the @var{font} in the specified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
647 @var{domain}, if any. @var{font} should be a font specifier object and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
648 @var{domain} is normally a window and defaults to the selected window if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
649 omitted. This is equivalent to using @code{specifier-instance} and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
650 applying @code{font-instance-properties} to the result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
651 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
652
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
653 @node Colors
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
654 @section Colors
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
655 @cindex colors
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
656
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
657 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
658 * Color Specifiers:: Specifying how a color will appear.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
659 * Color Instances:: What a color specifier gets instanced as.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
660 * Color Instance Properties:: Properties of color instances.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
661 * Color Convenience Functions:: Convenience functions that automatically
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
662 instance and retrieve the properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
663 of a color specifier.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
664 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
665
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
666 @node Color Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
667 @subsection Color Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
668
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
669 @defun color-specifier-p object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
670 This function returns non-@code{nil} if @var{object} is a color specifier.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
671 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
672
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
673 @defun make-color-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
674
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
675 Return a new @code{color} specifier object with the given specification
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
676 list. @var{spec-list} can be a list of specifications (each of which is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
677 a cons of a locale and a list of instantiators), a single instantiator,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
678 or a list of instantiators. @xref{Specifiers}, for a detailed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
679 description of how specifiers work.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
680
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
681 Valid instantiators for color specifiers are:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
682
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
683 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
684 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
685 A string naming a color (e.g. under X this might be "lightseagreen2" or
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
686 "#F534B2").
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
687
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
688 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
689 A color instance (use that instance directly if the device matches,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
690 or use the string that generated it).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
691
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
692 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
693 A vector of no elements (only on TTY's; this means to set no color at
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
694 all, thus using the "natural" color of the terminal's text).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
695
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
696 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
697 A vector of one or two elements: a face to inherit from, and optionally
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
698 a symbol naming which property of that face to inherit, either
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
699 @code{foreground} or @code{background} (if omitted, defaults to the same
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
700 property that this color specifier is used for; if this specifier is not
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
701 part of a face, the instantiator would not be valid).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
702 @end itemize
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
703 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
704
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
705 @defun make-face-boolean-specifier spec-list
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
706
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
707 Return a new @code{face-boolean} specifier object with the given spec
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
708 list. @var{spec-list} can be a list of specifications (each of which is
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
709 a cons of a locale and a list of instantiators), a single instantiator,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
710 or a list of instantiators. @xref{Specifiers}, for a detailed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
711 description of how specifiers work.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
712
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
713 Valid instantiators for face-boolean specifiers are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
714
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
715 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
716 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
717 t or nil.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
718 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
719 A vector of two or three elements: a face to inherit from, optionally a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
720 symbol naming the property of that face to inherit from (if omitted,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
721 defaults to the same property that this face-boolean specifier is used
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
722 for; if this specifier is not part of a face, the instantiator would not
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
723 be valid), and optionally a value which, if non-@code{nil}, means to invert the
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
724 sense of the inherited property.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
725 @end itemize
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
726
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
727 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
728
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
729
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
730 @node Color Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
731 @subsection Color Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
732 @cindex color instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
733
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
734 A @dfn{color-instance object} is an object describing the way a color
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
735 specifier is instanced in a particular domain. Functions such as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
736 @code{face-background-instance} return a color-instance object. For
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
737 example,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
738
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
739 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
740 (face-background-instance 'default (next-window))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
741 @result{} #<color-instance moccasin 47=(FFFF,E4E4,B5B5) 0x678d>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
742 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
743
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
744 The color-instance object returned describes the way the background
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
745 color of the @code{default} face is displayed in the next window after
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
746 the selected one.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
747
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
748 @defun color-instance-p object
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
749 This function returns non-@code{nil} if @var{object} is a color-instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
750 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
751
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
752 @node Color Instance Properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
753 @subsection Color Instance Properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
754
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
755 @defun color-instance-name color-instance
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
756 This function returns the name used to allocate @var{color-instance}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
757 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
758
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
759 @defun color-instance-rgb-components color-instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
760 This function returns a three element list containing the red, green,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
761 and blue color components of @var{color-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
762
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
763 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
764 (color-instance-rgb-components
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
765 (face-background-instance 'default (next-window)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
766 @result{} (65535 58596 46517)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
767 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
768 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
769
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
770 @node Color Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
771 @subsection Color Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
772
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
773 @defun color-name color &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
774 This function returns the name of the @var{color} in the specified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
775 @var{domain}, if any. @var{color} should be a color specifier object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
776 and @var{domain} is normally a window and defaults to the selected
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
777 window if omitted. This is equivalent to using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
778 @code{specifier-instance} and applying @code{color-instance-name} to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
779 result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
780 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
781
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
782 @defun color-rgb-components color &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
783 This function returns the @sc{rgb} components of the @var{color} in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
784 specified @var{domain}, if any. @var{color} should be a color specifier
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
785 object and @var{domain} is normally a window and defaults to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
786 selected window if omitted. This is equivalent to using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
787 @code{specifier-instance} and applying
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
788 @code{color-instance-rgb-components} to the result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
789
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
790 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
791 (color-rgb-components (face-background 'default (next-window)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
792 @result{} (65535 58596 46517)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
793 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
794 @end defun