annotate man/lispref/faces.texi @ 2420:ad56e5a6d09f

[xemacs-hg @ 2004-12-06 03:46:06 by ben] (none) README.packages: Document use of --package-prefix. Fix error in specifying standard package location. make-docfile.c: Use QXE_PATH_MAX. info.el: Correct doc string giving example package path. menubar-items.el: Move Prefix Rectangle command up one level. xemacs/packages.texi: Add long form of Lisp Reference Manual to links. Add links pointing to Lisp Reference Manual for more detailed package discussion. lispref/range-tables.texi: Document range-table changes. internals/internals.texi: Update history section. elhash.c, elhash.h, profile.c: Create inchash_eq() to allow direct incrementing of hash-table entry. Use in profile.c to try to reduce profiling overhead. Increase initial size of profile hash tables to reduce profiling overhead. buffer.c, device-msw.c, dialog-msw.c, dired-msw.c, editfns.c, event-msw.c, events.c, glyphs-msw.c, keymap.c, objects-msw.c, process-nt.c, syswindows.h, text.c, text.h, unexnt.c: Rename xetcs* -> qxetcs* for consistency with qxestr*. Rename ei*_c(_*) -> ei*_ascii(_*) since they work with ASCII-only strings not "C strings", whatever those are. This is the last place where "c" was incorrectly being used for "ascii". dialog-msw.c, dumper.c, event-msw.c, fileio.c, glyphs-gtk.c, glyphs-x.c, nt.c, process-nt.c, realpath.c, sysdep.c, sysfile.h, unexcw.c, unexnext.c, unexnt.c: Try to avoid differences in systems that do or do not include final null byte in PATH_MAX. Create PATH_MAX_INTERNAL and PATH_MAX_EXTERNAL and use them everywhere. Rewrite code in dumper.c to avoid use of PATH_MAX. When necessary in nt.c, use _MAX_PATH instead of MAX_PATH to be consistent with other places. text.c: Code to short-circuit when binary or Unicode was not working due to EOL wrapping. Fix this code to work when either no EOL autodetection or no CR's or LF's in the text. lisp.h, rangetab.c, rangetab.h, regex.c, search.c: Implement different types of ranges (open/closed start and end). Change default to be start-closed, end-open.
author ben
date Mon, 06 Dec 2004 03:46:07 +0000
parents 4657b5a54253
children 8baa2f03d853
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
2127
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
167 on GUI devices, currently X11, GTK, and Microsoft Windows.
428
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.
2127
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
376
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
377 Similarly to how the glyph's image specifier works @xref{Creating
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
378 Glyphs}, you don't create your own image specifier, but rather add
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
379 specifications to the existing one. Note that the image instance that is
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
380 generated in order to actually display the background pixmap is of type
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
381 @code{mono-pixmap}, meaning that it's a two-color image and the
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
382 foreground and background of the image get filled in with the
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
383 corresponding colors from the face. (#### Is this still true?)
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
384 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
385
1137
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
386 @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
387 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
388 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
389 @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
390 @end deffn
c6facab13185 [xemacs-hg @ 2002-12-03 10:35:06 by didierv]
didierv
parents: 444
diff changeset
391
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
392 @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
393 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
394 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
395 (@pxref{Fonts}).
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
396 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
397
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
398 @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
399 This function sets the underline property of face @var{face}.
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
400 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
401
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
402 @defun face-foreground face &optional locale tag-set exact-p
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
403 @defunx face-background face &optional locale tag-set exact-p
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
404 These functions return the foreground (respectively, background) color
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
405 specifier of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
406 @xref{Colors}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
407 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
408
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
409 @defun face-background-pixmap face &optional locale tag-set exact-p
2127
4657b5a54253 [xemacs-hg @ 2004-06-14 10:24:44 by stephent]
stephent
parents: 1137
diff changeset
410 This function returns the background-pixmap image specifier of face
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
411 @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
412 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
413
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
414 @defun face-font face &optional locale tag-set exact-p
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
415 This function returns the font specifier of face @var{face}. (Note:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
416 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
417
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
418 @xref{Fonts}.
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-font-name face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
422 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
423 @code{nil} if it is unspecified. This is basically equivalent to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
424 @code{(font-name (face-font @var{face}) @var{domain})} except that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
425 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
426 function is named @code{face-font} in FSF Emacs.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
427 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
429 @defun face-underline-p face &optional locale
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
430 This function returns the underline property of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
431 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
432
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
433 @defun face-foreground-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
434 @defunx face-background-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
435 These functions return the foreground (respectively, background) color
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
436 specifier of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
437 @xref{Colors}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
438 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
439
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
440 @defun face-background-pixmap-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
441 This function return the background-pixmap glyph object of face
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
442 @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
443 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
444
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
445 @defun face-font-instance face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
446 This function returns the font specifier of face @var{face}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
447 @xref{Fonts}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
448 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
449
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
450 @node Other Face Display Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
451 @subsection Other Face Display Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
452
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
453 @deffn Command invert-face face &optional locale
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
454 Swap the foreground and background colors of face @var{face}. If the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
455 face doesn't specify both foreground and background, then its foreground
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
456 and background are set to the default background and foreground.
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
457 @end deffn
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
458
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
459 @defun face-equal face1 face2 &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
460 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
461 display in the same way. @var{domain} is as in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
462 @code{face-property-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
463 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
464
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
465 @defun face-differs-from-default-p face &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
466 This returns @code{t} if the face @var{face} displays differently from
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
467 the default face. @var{domain} is as in @code{face-property-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
468 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
469
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
470 @node Fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
471 @section Fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
472 @cindex fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
473
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
474 This section describes how to work with font specifier and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
475 font instance objects, which encapsulate fonts in the window system.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
476
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
477 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
478 * Font Specifiers:: Specifying how a font will appear.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
479 * Font Instances:: What a font specifier gets instanced as.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
480 * Font Instance Names:: The name of a font instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
481 * Font Instance Size:: The size of a font instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
482 * Font Instance Characteristics:: Display characteristics of font instances.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
483 * Font Convenience Functions:: Convenience functions that automatically
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
484 instance and retrieve the properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
485 of a font specifier.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
486 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
487
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
488 @node Font Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
489 @subsection Font Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
490
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
491 @defun font-specifier-p object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
492 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
493 @code{nil} otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
494 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
495
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
496 @defun make-font-specifier spec-list
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 Return a new @code{font} specifier object with the given specification
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
499 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
500 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
501 or a list of instantiators. @xref{Specifiers}, for more information
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
502 about specifiers.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
503
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
504 Valid instantiators for font specifiers are:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
505
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
506 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
507
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
508 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
509 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
510 "-*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*" for a 14-point
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
511 upright medium-weight Courier font).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
512 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
513 A font instance (use that instance directly if the device matches,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
514 or use the string that generated it).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
515 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
516 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
517 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
518 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
519 A vector of one element (a face to inherit from).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
520 @end itemize
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
521 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
522
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
523 @node Font Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
524 @subsection Font Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
525
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
526 @defun font-instance-p object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
527 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
528 @code{nil} otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
529 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
530
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
531 @defun make-font-instance name &optional device noerror
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
532 This function creates a new font-instance object of the specified name.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
533 @var{device} specifies the device this object applies to and defaults to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
534 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
535 cannot be allocated; however, if @var{noerror} is non-@code{nil},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
536 @code{nil} is simply returned in this case.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
537
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
538 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
539 ``deallocate'' the font is the way you deallocate any other lisp object:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
540 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
541 these objects are GCed, the underlying X data is deallocated as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
542 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
543
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
544 @node Font Instance Names
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
545 @subsection Font Instance Names
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
546 @cindex font instance name
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
547 @cindex available fonts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
548 @cindex fonts available
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
549
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
550 @defun list-fonts pattern &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
551 This function returns a list of font names matching the given pattern.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
552 @var{device} specifies which device to search for names, and defaults to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
553 the currently selected device.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
554 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
555
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
556 @defun font-instance-name font-instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
557 This function returns the name used to allocate @var{font-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
558 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
559
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
560 @defun font-instance-truename font-instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
561 This function returns the canonical name of the given font instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
562 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
563 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
564 (but not necessarily its only unambiguous name).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
565 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
566
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
567 @node Font Instance Size
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
568 @subsection Font Instance Size
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
569 @cindex font instance size
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-font-size font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
572 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
573 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
574 (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
575 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
576 is measured in yourself ...
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-larger-font font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
580 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
581 font name). Returns the font if it succeeds, @code{nil} otherwise. If
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
582 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 larger. Otherwise, it returns the next larger version of this font that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
584 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 @defun x-find-smaller-font font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
588 This function loads a new, slightly smaller version of the given font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
589 (or font name). Returns the font if it succeeds, @code{nil} otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
590 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
591 smaller. Otherwise, it returns the next smaller version of this font
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
592 that is defined.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
593 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
594
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
595 @node Font Instance Characteristics
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
596 @subsection Font Instance Characteristics
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
597 @cindex font instance characteristics
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
598 @cindex characteristics of font instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
599 @cindex bold
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
600 @cindex demibold
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
601 @cindex italic
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
602 @cindex oblique
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
603
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
604 @defun font-instance-properties font-instance
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
605 This function returns the properties (an alist or @code{nil}) of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
606 @var{font-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
607 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
608
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
609 @defun x-make-font-bold font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
610 Given an X font specification, this attempts to make a ``bold'' font.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
611 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
612 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
613
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
614 @defun x-make-font-unbold font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
615 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
616 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
617 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
618
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
619 @defun x-make-font-italic font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
620 Given an X font specification, this attempts to make an ``italic'' font.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
621 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
622 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
623
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
624 @defun x-make-font-unitalic font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
625 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
626 If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
627 @end defun
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 x-make-font-bold-italic font &optional device
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
630 Given an X font specification, this attempts to make a ``bold-italic''
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
631 font. If it fails, it returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
632 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
633
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
634 @node Font Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
635 @subsection Font Convenience Functions
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-name font &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
638 This function returns the name 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-name} 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-truename font &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
646 This function returns the truename 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-truename} 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 @defun font-properties font &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
654 This function returns the properties of the @var{font} in the specified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
655 @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
656 @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
657 omitted. This is equivalent to using @code{specifier-instance} and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
658 applying @code{font-instance-properties} to the result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
659 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
660
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
661 @node Colors
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
662 @section Colors
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
663 @cindex colors
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
664
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
665 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
666 * Color Specifiers:: Specifying how a color will appear.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
667 * Color Instances:: What a color specifier gets instanced as.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
668 * Color Instance Properties:: Properties of color instances.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
669 * Color Convenience Functions:: Convenience functions that automatically
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
670 instance and retrieve the properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
671 of a color specifier.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
672 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
673
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
674 @node Color Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
675 @subsection Color Specifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
676
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
677 @defun color-specifier-p object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
678 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
679 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
680
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
681 @defun make-color-specifier spec-list
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 Return a new @code{color} specifier object with the given specification
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
684 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
685 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
686 or a list of instantiators. @xref{Specifiers}, for a detailed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
687 description of how specifiers work.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
688
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
689 Valid instantiators for color specifiers are:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
690
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
691 @itemize @bullet
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 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
694 "#F534B2").
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 color instance (use that instance directly if the device matches,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
698 or use the string that generated it).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
699
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
700 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
701 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
702 all, thus using the "natural" color of the terminal's text).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
703
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
704 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
705 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
706 a symbol naming which property of that face to inherit, either
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
707 @code{foreground} or @code{background} (if omitted, defaults to the same
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
708 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
709 part of a face, the instantiator would not be valid).
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
710 @end itemize
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
711 @end defun
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 @defun make-face-boolean-specifier spec-list
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 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
716 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
717 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
718 or a list of instantiators. @xref{Specifiers}, for a detailed
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
719 description of how specifiers work.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
720
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
721 Valid instantiators for face-boolean specifiers are
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
722
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
723 @itemize @bullet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
724 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
725 t or nil.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
726 @item
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
727 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
728 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
729 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
730 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
731 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
732 sense of the inherited property.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
733 @end itemize
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
734
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
735 @end defun
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
736
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
737
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
738 @node Color Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
739 @subsection Color Instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
740 @cindex color instances
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
741
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
742 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
743 specifier is instanced in a particular domain. Functions such as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
744 @code{face-background-instance} return a color-instance object. For
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
745 example,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
746
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
747 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
748 (face-background-instance 'default (next-window))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
749 @result{} #<color-instance moccasin 47=(FFFF,E4E4,B5B5) 0x678d>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
750 @end example
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 The color-instance object returned describes the way the background
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
753 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
754 the selected one.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
755
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
756 @defun color-instance-p object
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
757 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
758 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
759
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
760 @node Color Instance Properties
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
761 @subsection Color Instance Properties
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 @defun color-instance-name color-instance
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
764 This function returns the name used to allocate @var{color-instance}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
765 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
766
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
767 @defun color-instance-rgb-components color-instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
768 This function returns a three element list containing the red, green,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
769 and blue color components of @var{color-instance}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
770
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
771 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
772 (color-instance-rgb-components
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
773 (face-background-instance 'default (next-window)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
774 @result{} (65535 58596 46517)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
775 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
776 @end defun
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
777
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
778 @node Color Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
779 @subsection Color Convenience Functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
780
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
781 @defun color-name color &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
782 This function returns the name of the @var{color} in the specified
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
783 @var{domain}, if any. @var{color} should be a color specifier object
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
784 and @var{domain} is normally a window and defaults to the selected
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
785 window if omitted. This is equivalent to using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
786 @code{specifier-instance} and applying @code{color-instance-name} to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
787 result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
788 @end defun
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 @defun color-rgb-components color &optional domain
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
791 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
792 specified @var{domain}, if any. @var{color} should be a color specifier
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
793 object and @var{domain} is normally a window and defaults to the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
794 selected window if omitted. This is equivalent to using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
795 @code{specifier-instance} and applying
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
796 @code{color-instance-rgb-components} to the result.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
797
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
798 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
799 (color-rgb-components (face-background 'default (next-window)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
800 @result{} (65535 58596 46517)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
801 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
802 @end defun