annotate man/lispref/glyphs.texi @ 404:2f8bb876ab1d r21-2-32

Import from CVS: tag r21-2-32
author cvs
date Mon, 13 Aug 2007 11:16:07 +0200
parents 74fd4e045ea6
children 501cfd01ee6d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 @c -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @c This is part of the XEmacs Lisp Reference Manual.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 @c Copyright (C) 1995, 1996 Ben Wing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @c See the file lispref.texi for copying conditions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @setfilename ../../info/glyphs.info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 @node Glyphs, Annotations, Faces and Window-System Objects, top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @chapter Glyphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 @cindex glyphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 A @dfn{glyph} is an object that is used for pixmaps and images of all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 sorts, as well as for things that ``act'' like pixmaps, such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 non-textual strings (@dfn{annotations}) displayed in a buffer or in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 margins. It is used in begin-glyphs and end-glyphs attached to extents,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 marginal and textual annotations, overlay arrows (@code{overlay-arrow-*}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 variables), toolbar buttons, mouse pointers, frame icons, truncation and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 continuation markers, and the like. (Basically, any place there is an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 image or something that acts like an image, there will be a glyph object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 representing it.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 The actual image that is displayed (as opposed to its position or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 clipping) is defined by an @dfn{image specifier} object contained
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 within the glyph. The separation between an image specifier object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 and a glyph object is made because the glyph includes other properties
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 than just the actual image: e.g. the face it is displayed in (for text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 images), the alignment of the image (when it is in a buffer), etc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 @defun glyphp object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 This function returns @code{t} if @var{object} is a glyph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 * Glyph Functions:: Functions for working with glyphs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 * Images:: Graphical images displayed in a frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 * Glyph Types:: Each glyph has a particular type.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 * Mouse Pointer:: Controlling the mouse pointer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 * Redisplay Glyphs:: Glyphs controlling various redisplay functions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 * Subwindows:: Inserting an externally-controlled subwindow
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 into a buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 @node Glyph Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 @section Glyph Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 * Creating Glyphs:: Creating new glyphs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 * Glyph Properties:: Accessing and modifying a glyph's properties.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 * Glyph Convenience Functions::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 Convenience functions for accessing particular
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 properties of a glyph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 * Glyph Dimensions:: Determining the height, width, etc. of a glyph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 @node Creating Glyphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 @subsection Creating Glyphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 @defun make-glyph &optional spec-list type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 This function creates a new glyph object of type @var{type}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 @var{spec-list} is used to initialize the glyph's image. It is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 typically an image instantiator (a string or a vector; @ref{Image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 Specifiers}), but can also be a list of such instantiators (each one in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 turn is tried until an image is successfully produced), a cons of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 locale (frame, buffer, etc.) and an instantiator, a list of such conses,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 or any other form accepted by @code{canonicalize-spec-list}.
394
7d59cb494b73 Import from CVS: tag r21-2-12
cvs
parents: 371
diff changeset
65 @xref{Specifiers}, for more information about specifiers.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 @var{type} specifies the type of the glyph, which specifies in which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 contexts the glyph can be used, and controls the allowable image types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 into which the glyph's image can be instantiated. @var{type} should be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 one of @code{buffer} (used for glyphs in an extent, the modeline, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 toolbar, or elsewhere in a buffer), @code{pointer} (used for the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 mouse-pointer), or @code{icon} (used for a frame's icon), and defaults
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 to @code{buffer}. @xref{Glyph Types}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 @defun make-glyph-internal &optional type
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
77 This function creates a new, uninitialized glyph of type @var{type}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 @defun make-pointer-glyph &optional spec-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 This function is equivalent to calling @code{make-glyph} with a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 @var{type} of @code{pointer}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 @defun make-icon-glyph &optional spec-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 This function is equivalent to calling @code{make-glyph} with a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 @var{type} of @code{icon}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 @node Glyph Properties
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 @subsection Glyph Properties
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 Each glyph has a list of properties, which control all of the aspects of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 the glyph's appearance. The following symbols have predefined meanings:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 @item image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 The image used to display the glyph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 @item baseline
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 Percent above baseline that glyph is to be displayed. Only for glyphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 displayed inside of a buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 @item contrib-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 Whether the glyph contributes to the height of the line it's on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 Only for glyphs displayed inside of a buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 @item face
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 Face of this glyph (@emph{not} a specifier).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 @defun set-glyph-property glyph property value &optional locale tag-set how-to-add
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 This function changes a property of a @var{glyph}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 For built-in properties, the actual value of the property is a specifier
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 and you cannot change this; but you can change the specifications within
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 the specifier, and that is what this function will do. For user-defined
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 properties, you can use this function to either change the actual value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 of the property or, if this value is a specifier, change the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 specifications within it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 If @var{property} is a built-in property, the specifications to be added
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 to this property can be supplied in many different ways:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 If @var{value} is a simple instantiator (e.g. a string naming a pixmap
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 filename) or a list of instantiators, then the instantiator(s) will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 added as a specification of the property for the given @var{locale}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 (which defaults to @code{global} if omitted).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 If @var{value} is a list of specifications (each of which is a cons of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134 locale and a list of instantiators), then @var{locale} must be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 @code{nil} (it does not make sense to explicitly specify a locale in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 this case), and specifications will be added as given.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 If @var{value} is a specifier (as would be returned by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 @code{glyph-property} if no @var{locale} argument is given), then some
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 or all of the specifications in the specifier will be added to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 property. In this case, the function is really equivalent to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 @code{copy-specifier} and @var{locale} has the same semantics (if it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 a particular locale, the specification for the locale will be copied; if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 a locale type, specifications for all locales of that type will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 copied; if @code{nil} or @code{all}, then all specifications will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 copied).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 @var{how-to-add} should be either @code{nil} or one of the symbols
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 @code{prepend}, @code{append}, @code{remove-tag-set-prepend},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 @code{remove-tag-set-append}, @code{remove-locale},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 @code{remove-locale-type}, or @code{remove-all}. See
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 @code{copy-specifier} and @code{add-spec-to-specifier} for a description
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 of what each of these means. Most of the time, you do not need to worry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 about this argument; the default behavior usually is fine.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 In general, it is OK to pass an instance object (e.g. as returned by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 @code{glyph-property-instance}) as an instantiator in place of an actual
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 instantiator. In such a case, the instantiator used to create that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 instance object will be used (for example, if you set a font-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 object as the value of the @code{font} property, then the font name used
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 to create that object will be used instead). If some cases, however,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 doing this conversion does not make sense, and this will be noted in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 documentation for particular types of instance objects.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 If @var{property} is not a built-in property, then this function will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 simply set its value if @var{locale} is @code{nil}. However, if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 @var{locale} is given, then this function will attempt to add
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 @var{value} as the instantiator for the given @var{locale}, using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 @code{add-spec-to-specifier}. If the value of the property is not a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 specifier, it will automatically be converted into a @code{generic}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 specifier.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 @defun glyph-property glyph property &optional locale
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 This function returns @var{glyph}'s value of the given @var{property}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 If @var{locale} is omitted, the @var{glyph}'s actual value for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 @var{property} will be returned. For built-in properties, this will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 a specifier object of a type appropriate to the property (e.g. a font or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 color specifier). For other properties, this could be anything.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 If @var{locale} is supplied, then instead of returning the actual value,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 the specification(s) for the given locale or locale type will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 returned. This will only work if the actual value of @var{property} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 a specifier (this will always be the case for built-in properties, but
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
188 may or may not apply to user-defined properties). If the actual value
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 of @var{property} is not a specifier, this value will simply be returned
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 regardless of @var{locale}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 The return value will be a list of instantiators (e.g. vectors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 specifying pixmap data), or a list of specifications, each of which is a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 cons of a locale and a list of instantiators. Specifically, if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 @var{locale} is a particular locale (a buffer, window, frame, device, or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 @code{global}), a list of instantiators for that locale will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 returned. Otherwise, if @var{locale} is a locale type (one of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 symbols @code{buffer}, @code{window}, @code{frame}, or @code{device}),
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 the specifications for all locales of that type will be returned.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 Finally, if @var{locale} is @code{all}, the specifications for all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 locales of all types will be returned.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 The specifications in a specifier determine what the value of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 @var{property} will be in a particular @dfn{domain} or set of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 circumstances, which is typically a particular Emacs window along with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206 the buffer it contains and the frame and device it lies within. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 value is derived from the instantiator associated with the most specific
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 locale (in the order buffer, window, frame, device, and @code{global})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 that matches the domain in question. In other words, given a domain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 (i.e. an Emacs window, usually), the specifier for @var{property} will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 first be searched for a specification whose locale is the buffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 contained within that window; then for a specification whose locale is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 the window itself; then for a specification whose locale is the frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 that the window is contained within; etc. The first instantiator that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 is valid for the domain (usually this means that the instantiator is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 recognized by the device [i.e. the X server or TTY device] that the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 domain is on). The function @code{glyph-property-instance} actually does
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 all this, and is used to determine how to display the glyph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 @defun glyph-property-instance glyph property &optional domain default no-fallback
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 This function returns the instance of @var{glyph}'s @var{property} in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 specified @var{domain}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 Under most circumstances, @var{domain} will be a particular window, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 the returned instance describes how the specified property actually is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 displayed for that window and the particular buffer in it. Note that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 this may not be the same as how the property appears when the buffer is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229 displayed in a different window or frame, or how the property appears in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 the same window if you switch to another buffer in that window; and in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 those cases, the returned instance would be different.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 The returned instance is an image-instance object, and you can query it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 using the appropriate image instance functions. For example, you could use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 @code{image-instance-depth} to find out the depth (number of color
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 planes) of a pixmap displayed in a particular window. The results might
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 be different from the results you would get for another window (perhaps
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 the user specified a different image for the frame that window is on; or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 perhaps the same image was specified but the window is on a different X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 server, and that X server has different color capabilities from this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 one).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 @var{domain} defaults to the selected window if omitted.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 @var{domain} can be a frame or device, instead of a window. The value
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
246 returned for such a domain is used in special circumstances when a
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 more specific domain does not apply; for example, a frame value might be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248 used for coloring a toolbar, which is conceptually attached to a frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 rather than a particular window. The value is also useful in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 determining what the value would be for a particular window within the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 frame or device, if it is not overridden by a more specific
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 specification.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 If @var{property} does not name a built-in property, its value will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 simply be returned unless it is a specifier object, in which case it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 will be instanced using @code{specifier-instance}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 Optional arguments @var{default} and @var{no-fallback} are the same as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 in @code{specifier-instance}. @xref{Specifiers}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 @defun remove-glyph-property glyph property &optional locale tag-set exact-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263 This function removes a property from a glyph. For built-in properties,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264 this is analogous to @code{remove-specifier}. @xref{Specifiers,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265 remove-specifier-p}, for the meaning of the @var{locale}, @var{tag-set},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 and @var{exact-p} arguments.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269 @node Glyph Convenience Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 @subsection Glyph Convenience Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 The following functions are provided for working with specific
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273 properties of a glyph. Note that these are exactly like calling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 the general functions described above and passing in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 appropriate value for @var{property}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 Remember that if you want to determine the ``value'' of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278 specific glyph property, you probably want to use the @code{*-instance}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 functions. For example, to determine whether a glyph contributes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 to its line height, use @code{glyph-contrib-p-instance}, not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281 @code{glyph-contrib-p}. (The latter will return a boolean specifier
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 or a list of specifications, and you probably aren't concerned with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 these.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 @defun glyph-image glyph &optional locale
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 This function is equivalent to calling @code{glyph-property} with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 a property of @code{image}. The return value will be an image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 specifier if @var{locale} is @code{nil} or omitted; otherwise,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 it will be a specification or list of specifications.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 @defun set-glyph-image glyph spec &optional locale tag-set how-to-add
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 This function is equivalent to calling @code{set-glyph-property} with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294 a property of @code{image}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 @defun glyph-image-instance glyph &optional domain default no-fallback
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 This function returns the instance of @var{glyph}'s image in the given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299 @var{domain}, and is equivalent to calling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 @code{glyph-property-instance} with a property of @code{image}. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 return value will be an image instance.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 Normally @var{domain} will be a window or @code{nil} (meaning the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 selected window), and an instance object describing how the image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305 appears in that particular window and buffer will be returned.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 @defun glyph-contrib-p glyph &optional locale
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 This function is equivalent to calling @code{glyph-property} with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 a property of @code{contrib-p}. The return value will be a boolean
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 specifier if @var{locale} is @code{nil} or omitted; otherwise,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 it will be a specification or list of specifications.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 @defun set-glyph-contrib-p glyph spec &optional locale tag-set how-to-add
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 This function is equivalent to calling @code{set-glyph-property} with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 a property of @code{contrib-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 @defun glyph-contrib-p-instance glyph &optional domain default no-fallback
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321 This function returns whether the glyph contributes to its line height
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 in the given @var{domain}, and is equivalent to calling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 @code{glyph-property-instance} with a property of @code{contrib-p}. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 return value will be either @code{nil} or @code{t}. (Normally @var{domain}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 will be a window or @code{nil}, meaning the selected window.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 @defun glyph-baseline glyph &optional locale
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329 This function is equivalent to calling @code{glyph-property} with a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 property of @code{baseline}. The return value will be a specifier if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331 @var{locale} is @code{nil} or omitted; otherwise, it will be a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332 specification or list of specifications.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335 @defun set-glyph-baseline glyph spec &optional locale tag-set how-to-add
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 This function is equivalent to calling @code{set-glyph-property} with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 a property of @code{baseline}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340 @defun glyph-baseline-instance glyph &optional domain default no-fallback
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341 This function returns the instance of @var{glyph}'s baseline value in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342 the given @var{domain}, and is equivalent to calling
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 @code{glyph-property-instance} with a property of @code{baseline}. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 return value will be an integer or @code{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346 Normally @var{domain} will be a window or @code{nil} (meaning the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347 selected window), and an instance object describing the baseline value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348 appears in that particular window and buffer will be returned.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 @defun glyph-face glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352 This function returns the face of @var{glyph}. (Remember, this is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353 not a specifier, but a simple property.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 @defun set-glyph-face glyph face
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357 This function changes the face of @var{glyph} to @var{face}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
360 @node Glyph Dimensions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
361 @subsection Glyph Dimensions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
362
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
363 @defun glyph-width glyph &optional window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
364 This function returns the width of @var{glyph} on @var{window}. This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
365 may not be exact as it does not take into account all of the context
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
366 that redisplay will.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
367 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
368
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
369 @defun glyph-ascent glyph &optional window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
370 This function returns the ascent value of @var{glyph} on @var{window}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
371 This may not be exact as it does not take into account all of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
372 context that redisplay will.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
373 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
374
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
375 @defun glyph-descent glyph &optional window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
376 This function returns the descent value of @var{glyph} on @var{window}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
377 This may not be exact as it does not take into account all of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
378 context that redisplay will.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
379 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
380
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
381 @defun glyph-height glyph &optional window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
382 This function returns the height of @var{glyph} on @var{window}. (This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
383 is equivalent to the sum of the ascent and descent values.) This may
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
384 not be exact as it does not take into account all of the context that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
385 redisplay will.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
386 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
387
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
388 @node Images
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
389 @section Images
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
390
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
391 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
392 * Image Specifiers:: Specifying how an image will appear.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
393 * Image Instantiator Conversion::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
394 Conversion is applied to image instantiators
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
395 at the time they are added to an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
396 image specifier or at the time they
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
397 are passed to @code{make-image-instance}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
398 * Image Instances:: What an image specifier gets instanced as.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
399 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
400
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
401 @node Image Specifiers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
402 @subsection Image Specifiers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
403 @cindex image specifiers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
404
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
405 An image specifier is used to describe the actual image of a glyph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
406 It works like other specifiers (@pxref{Specifiers}), in that it contains
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
407 a number of specifications describing how the image should appear in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
408 variety of circumstances. These specifications are called @dfn{image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
409 instantiators}. When XEmacs wants to display the image, it instantiates
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
410 the image into an @dfn{image instance}. Image instances are their own
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
411 primitive object type (similar to font instances and color instances),
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
412 describing how the image appears in a particular domain. (On the other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
413 hand, image instantiators, which are just descriptions of how the image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
414 should appear, are represented using strings or vectors.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
415
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
416 @defun image-specifier-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
417 This function returns non-@code{nil} if @var{object} is an image specifier.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
418 Usually, an image specifier results from calling @code{glyph-image} on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
419 a glyph.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
420 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
421
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
422 @defun make-image-specifier spec-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
423 This function creates a new image specifier object and initializes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
424 it according to @var{spec-list}. It is unlikely that you will ever
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
425 want to do this, but this function is provided for completeness and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
426 for experimentation purposes. @xref{Specifiers}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
427 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
428
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
429 Image instantiators come in many formats: @code{xbm}, @code{xpm},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
430 @code{gif}, @code{jpeg}, etc. This describes the format of the data
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
431 describing the image. The resulting image instances also come in many
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 394
diff changeset
432 types---@code{mono-pixmap}, @code{color-pixmap}, @code{text},
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
433 @code{pointer}, etc. This refers to the behavior of the image and the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
434 sorts of places it can appear. (For example, a color-pixmap image has
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
435 fixed colors specified for it, while a mono-pixmap image comes in two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
436 unspecified shades ``foreground'' and ``background'' that are determined
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
437 from the face of the glyph or surrounding text; a text image appears as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
438 a string of text and has an unspecified foreground, background, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
439 font; a pointer image behaves like a mono-pixmap image but can only be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
440 used as a mouse pointer [mono-pixmap images cannot be used as mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
441 pointers]; etc.) It is important to keep the distinction between image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
442 instantiator format and image instance type in mind. Typically, a given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
443 image instantiator format can result in many different image instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
444 types (for example, @code{xpm} can be instanced as @code{color-pixmap},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
445 @code{mono-pixmap}, or @code{pointer}; whereas @code{cursor-font} can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
446 instanced only as @code{pointer}), and a particular image instance type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
447 can be generated by many different image instantiator formats (e.g.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
448 @code{color-pixmap} can be generated by @code{xpm}, @code{gif},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
449 @code{jpeg}, etc.).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
450
394
7d59cb494b73 Import from CVS: tag r21-2-12
cvs
parents: 371
diff changeset
451 @xref{Image Instances}, for a more detailed discussion of image
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
452 instance types.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
453
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
454 An image instantiator should be a string or a vector of the form
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
455
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
456 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
457 @code{[@var{format} @var{:keyword} @var{value} ...]}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
458 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
459
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
460 i.e. a format symbol followed by zero or more alternating keyword-value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
461 pairs. The @dfn{format} field should be a symbol, one of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
462
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
463 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
464 @item nothing
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
465 Don't display anything; no keywords are valid for this. Can only be
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
466 instanced as @code{nothing}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
467 @item string
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
468 Display this image as a text string. Can only be instanced
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
469 as @code{text}, although support for instancing as @code{mono-pixmap}
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
470 should be added.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
471 @item formatted-string
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
472 Display this image as a text string with replaceable fields,
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
473 similar to a modeline format string; not currently implemented.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
474 @item xbm
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
475 An X bitmap; only if X support was compiled into this XEmacs. Can be
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
476 instanced as @code{mono-pixmap}, @code{color-pixmap}, or
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
477 @code{pointer}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
478 @item xpm
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
479 An XPM pixmap; only if XPM support was compiled into this XEmacs. Can
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
480 be instanced as @code{color-pixmap}, @code{mono-pixmap}, or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
481 @code{pointer}. XPM is an add-on library for X that was designed to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
482 rectify the shortcomings of the XBM format. Most implementations of X
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
483 include the XPM library as a standard part. If your vendor does not, it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
484 is highly recommended that you download it and install it. You can get
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
485 it from the standard XEmacs FTP site, among other places.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
486 @item xface
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
487 An X-Face bitmap, used to encode people's faces in e-mail messages;
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
488 only if X-Face support was compiled into this XEmacs. Can be instanced
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
489 as @code{mono-pixmap}, @code{color-pixmap}, or @code{pointer}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
490 @item gif
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
491 A GIF87 or GIF89 image; only if GIF support was compiled into this
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
492 XEmacs. Can be instanced as @code{color-pixmap}. Note that XEmacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
493 includes GIF decoding functions as a standard part of it, so if you have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
494 X support, you will normally have GIF support, unless you explicitly
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
495 disable it at configure time.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
496 @item jpeg
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
497 A JPEG-format image; only if JPEG support was compiled into this
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
498 XEmacs. Can be instanced as @code{color-pixmap}. If you have the JPEG
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
499 libraries present on your system when XEmacs is built, XEmacs will
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
500 automatically detect this and use them, unless you explicitly disable it
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
501 at configure time.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
502 @item png
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
503 A PNG/GIF24 image; only if PNG support was compiled into this XEmacs.
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
504 Can be instanced as @code{color-pixmap}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
505 @item tiff
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
506 A TIFF-format image; only if TIFF support was compiled into this XEmacs.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
507 @item cursor-font
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
508 One of the standard cursor-font names, such as @samp{watch} or
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
509 @samp{right_ptr} under X. Under X, this is, more specifically, any of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
510 the standard cursor names from appendix B of the Xlib manual [also known
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
511 as the file @file{<X11/cursorfont.h>}] minus the @samp{XC_} prefix. On
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
512 other window systems, the valid names will be specific to the type of
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
513 window system. Can only be instanced as @code{pointer}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
514 @item font
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
515 A glyph from a font; i.e. the name of a font, and glyph index into it
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
516 of the form @samp{@var{font} fontname index [[mask-font] mask-index]}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
517 Only if X support was compiled into this XEmacs. Currently can only be
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
518 instanced as @code{pointer}, although this should probably be fixed.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
519 @item subwindow
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
520 An embedded X window; not currently implemented.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
521 @item autodetect
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
522 XEmacs tries to guess what format the data is in. If X support exists,
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
523 the data string will be checked to see if it names a filename. If so,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
524 and this filename contains XBM or XPM data, the appropriate sort of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
525 pixmap or pointer will be created. [This includes picking up any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
526 specified hotspot or associated mask file.] Otherwise, if @code{pointer}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
527 is one of the allowable image-instance types and the string names a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
528 valid cursor-font name, the image will be created as a pointer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
529 Otherwise, the image will be displayed as text. If no X support exists,
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
530 the image will always be displayed as text.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
531 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
532
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
533 The valid keywords are:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
534
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
535 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
536 @item :data
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
537 Inline data. For most formats above, this should be a string. For
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
538 XBM images, this should be a list of three elements: width, height, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
539 a string of bit data. This keyword is not valid for instantiator
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
540 format @code{nothing}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
541
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
542 @item :file
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
543 Data is contained in a file. The value is the name of this file. If
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
544 both @code{:data} and @code{:file} are specified, the image is created
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
545 from what is specified in @code{:data} and the string in @code{:file}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
546 becomes the value of the @code{image-instance-file-name} function when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
547 applied to the resulting image-instance. This keyword is not valid for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
548 instantiator formats @code{nothing}, @code{string},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
549 @code{formatted-string}, @code{cursor-font}, @code{font}, and
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
550 @code{autodetect}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
551
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
552 @item :foreground
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
553 @itemx :background
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
554 For @code{xbm}, @code{xface}, @code{cursor-font}, and @code{font}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
555 These keywords allow you to explicitly specify foreground and background
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
556 colors. The argument should be anything acceptable to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
557 @code{make-color-instance}. This will cause what would be a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
558 @code{mono-pixmap} to instead be colorized as a two-color color-pixmap,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
559 and specifies the foreground and/or background colors for a pointer
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
560 instead of black and white.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
561
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
562 @item :mask-data
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
563 For @code{xbm} and @code{xface}. This specifies a mask to be used with the
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
564 bitmap. The format is a list of width, height, and bits, like for
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
565 @code{:data}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
566
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
567 @item :mask-file
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
568 For @code{xbm} and @code{xface}. This specifies a file containing the
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
569 mask data. If neither a mask file nor inline mask data is given for an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
570 XBM image, and the XBM image comes from a file, XEmacs will look for a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
571 mask file with the same name as the image file but with @samp{Mask} or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
572 @samp{msk} appended. For example, if you specify the XBM file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
573 @file{left_ptr} [usually located in @file{/usr/include/X11/bitmaps}],
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
574 the associated mask file @file{left_ptrmsk} will automatically be picked
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
575 up.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
576
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
577 @item :hotspot-x
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
578 @itemx :hotspot-y
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
579 For @code{xbm} and @code{xface}. These keywords specify a hotspot if
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
580 the image is instantiated as a @code{pointer}. Note that if the XBM
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
581 image file specifies a hotspot, it will automatically be picked up if no
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
582 explicit hotspot is given.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
583
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
584 @item :color-symbols
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
585 Only for @code{xpm}. This specifies an alist that maps strings that
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
586 specify symbolic color names to the actual color to be used for that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
587 symbolic color (in the form of a string or a color-specifier object).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
588 If this is not specified, the contents of @code{xpm-color-symbols} are
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents: 398
diff changeset
589 used to generate the alist.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
590 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
591
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
592 If instead of a vector, the instantiator is a string, it will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
593 converted into a vector by looking it up according to the specs in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
594 @code{console-type-image-conversion-list} for the console type of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
595 the domain (usually a window; sometimes a frame or device) over which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
596 the image is being instantiated.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
597
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
598 If the instantiator specifies data from a file, the data will be read in
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
599 at the time that the instantiator is added to the image specifier (which
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
600 may be well before the image is actually displayed), and the
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
601 instantiator will be converted into one of the inline-data forms, with
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
602 the filename retained using a @code{:file} keyword. This implies that
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
603 the file must exist when the instantiator is added to the image, but
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
604 does not need to exist at any other time (e.g. it may safely be a
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
605 temporary file).
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
606
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
607 @defun valid-image-instantiator-format-p format
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
608 This function returns non-@code{nil} if @var{format} is a valid image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
609 instantiator format. Note that the return value for many formats listed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
610 above depends on whether XEmacs was compiled with support for that format.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
611 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
612
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
613 @defun image-instantiator-format-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
614 This function return a list of valid image-instantiator formats.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
615 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
616
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
617 @defvar xpm-color-symbols
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
618 This variable holds definitions of logical color-names used when reading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
619 XPM files. Elements of this list should be of the form
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
620 @code{(@var{color-name} @var{form-to-evaluate})}. The @var{color-name}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
621 should be a string, which is the name of the color to define; the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
622 @var{form-to-evaluate} should evaluate to a color specifier object, or a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
623 string to be passed to @code{make-color-instance} (@pxref{Colors}). If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
624 a loaded XPM file references a symbolic color called @var{color-name},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
625 it will display as the computed color instead.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
626
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
627 The default value of this variable defines the logical color names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
628 @samp{"foreground"} and @samp{"background"} to be the colors of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
629 @code{default} face.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
630 @end defvar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
631
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
632 @defvar x-bitmap-file-path
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
633 A list of the directories in which X bitmap files may be found. If nil,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
634 this is initialized from the @samp{"*bitmapFilePath"} resource. This is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
635 used by the @code{make-image-instance} function (however, note that if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
636 the environment variable @samp{XBMLANGPATH} is set, it is consulted
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
637 first).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
638 @end defvar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
639
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
640 @node Image Instantiator Conversion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
641 @subsection Image Instantiator Conversion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
642 @cindex image instantiator conversion
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
643 @cindex conversion of image instantiators
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
644
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
645 @defun set-console-type-image-conversion-list console-type list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
646 This function sets the image-conversion-list for consoles of the given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
647 @var{console-type}. The image-conversion-list specifies how image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
648 instantiators that are strings should be interpreted. Each element of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
649 the list should be a list of two elements (a regular expression string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
650 and a vector) or a list of three elements (the preceding two plus an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
651 integer index into the vector). The string is converted to the vector
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
652 associated with the first matching regular expression. If a vector
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
653 index is specified, the string itself is substituted into that position
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
654 in the vector.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
655
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
656 Note: The conversion above is applied when the image instantiator is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
657 added to an image specifier, not when the specifier is actually
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
658 instantiated. Therefore, changing the image-conversion-list only affects
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
659 newly-added instantiators. Existing instantiators in glyphs and image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
660 specifiers will not be affected.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
661 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
662
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
663 @defun console-type-image-conversion-list console-type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
664 This function returns the image-conversion-list for consoles of the given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
665 @var{console-type}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
666 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
667
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
668 @node Image Instances
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
669 @subsection Image Instances
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
670 @cindex image instances
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
671
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
672 Image-instance objects encapsulate the way a particular image (pixmap,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
673 etc.) is displayed on a particular device.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
674
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
675 In most circumstances, you do not need to directly create image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
676 instances; use a glyph instead. However, it may occasionally be useful
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
677 to explicitly create image instances, if you want more control over the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
678 instantiation process.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
679
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
680 @defun image-instance-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
681 This function returns non-@code{nil} if @var{object} is an image instance.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
682 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
683
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
684 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
685 * Image Instance Types:: Each image instances has a particular type.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
686 * Image Instance Functions:: Functions for working with image instances.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
687 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
688
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
689 @node Image Instance Types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
690 @subsubsection Image Instance Types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
691 @cindex image instance types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
692
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
693 Image instances come in a number of different types. The type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
694 of an image instance specifies the nature of the image: Whether
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
695 it is a text string, a mono pixmap, a color pixmap, etc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
696
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
697 The valid image instance types are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
698
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
699 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
700 @item nothing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
701 Nothing is displayed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
702
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
703 @item text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
704 Displayed as text. The foreground and background colors and the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
705 font of the text are specified independent of the pixmap. Typically
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
706 these attributes will come from the face of the surrounding text,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
707 unless a face is specified for the glyph in which the image appears.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
708
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
709 @item mono-pixmap
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
710 Displayed as a mono pixmap (a pixmap with only two colors where the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
711 foreground and background can be specified independent of the pixmap;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
712 typically the pixmap assumes the foreground and background colors of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
713 the text around it, unless a face is specified for the glyph in which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
714 the image appears).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
715 @item color-pixmap
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
716
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
717 Displayed as a color pixmap.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
718
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
719 @item pointer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
720 Used as the mouse pointer for a window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
721
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
722 @item subwindow
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
723 A child window that is treated as an image. This allows (e.g.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
724 another program to be responsible for drawing into the window.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
725 Not currently implemented.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
726 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
727
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
728 @defun valid-image-instance-type-p type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
729 This function returns non-@code{nil} if @var{type} is a valid image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
730 instance type.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
731 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
732
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
733 @defun image-instance-type-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
734 This function returns a list of the valid image instance types.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
735 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
736
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
737 @defun image-instance-type image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
738 This function returns the type of the given image instance. The return
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
739 value will be one of @code{nothing}, @code{text}, @code{mono-pixmap},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
740 @code{color-pixmap}, @code{pointer}, or @code{subwindow}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
741 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
742
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
743 @defun text-image-instance-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
744 This function returns non-@code{nil} if @var{object} is an image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
745 instance of type @code{text}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
746 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
747
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
748 @defun mono-pixmap-image-instance-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
749 This function returns non-@code{nil} if @var{object} is an image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
750 instance of type @code{mono-pixmap}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
751 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
752
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
753 @defun color-pixmap-image-instance-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
754 This function returns non-@code{nil} if @var{object} is an image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
755 instance of type @code{color-pixmap}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
756 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
757
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
758 @defun pointer-image-instance-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
759 This function returns non-@code{nil} if @var{object} is an image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
760 instance of type @code{pointer}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
761 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
762
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
763 @defun subwindow-image-instance-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
764 This function returns non-@code{nil} if @var{object} is an image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
765 instance of type @code{subwindow}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
766 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
767
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
768 @defun nothing-image-instance-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
769 This function returns non-@code{nil} if @var{object} is an image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
770 instance of type @code{nothing}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
771 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
772
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
773 @node Image Instance Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
774 @subsubsection Image Instance Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
775
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
776 @defun make-image-instance data &optional device dest-types no-error
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
777 This function creates a new image-instance object.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
778
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
779 @var{data} is an image instantiator, which describes the image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
780 (@pxref{Image Specifiers}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
781
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
782 @var{dest-types} should be a list of allowed image instance types that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
783 can be generated. The @var{dest-types} list is unordered. If multiple
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
784 destination types are possible for a given instantiator, the ``most
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
785 natural'' type for the instantiator's format is chosen. (For XBM, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
786 most natural types are @code{mono-pixmap}, followed by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
787 @code{color-pixmap}, followed by @code{pointer}. For the other normal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
788 image formats, the most natural types are @code{color-pixmap}, followed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
789 by @code{mono-pixmap}, followed by @code{pointer}. For the string and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
790 formatted-string formats, the most natural types are @code{text},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
791 followed by @code{mono-pixmap} (not currently implemented), followed by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
792 @code{color-pixmap} (not currently implemented). The other formats can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
793 only be instantiated as one type. (If you want to control more
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
794 specifically the order of the types into which an image is instantiated,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
795 just call @code{make-image-instance} repeatedly until it succeeds,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
796 passing less and less preferred destination types each time.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
797
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
798 If @var{dest-types} is omitted, all possible types are allowed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
799
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
800 @var{no-error} controls what happens when the image cannot be generated.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
801 If @var{nil}, an error message is generated. If @var{t}, no messages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
802 are generated and this function returns @var{nil}. If anything else, a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
803 warning message is generated and this function returns @var{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
804 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
805
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
806 @defun colorize-image-instance image-instance foreground background
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
807 This function makes the image instance be displayed in the given
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
808 colors. Image instances come in two varieties: bitmaps, which are 1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
809 bit deep which are rendered in the prevailing foreground and background
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
810 colors; and pixmaps, which are of arbitrary depth (including 1) and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
811 which have the colors explicitly specified. This function converts a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
812 bitmap to a pixmap. If the image instance was a pixmap already,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
813 nothing is done (and @code{nil} is returned). Otherwise @code{t} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
814 returned.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
815 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
816
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
817 @defun image-instance-name image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
818 This function returns the name of the given image instance.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
819 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
820
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
821 @defun image-instance-string image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
822 This function returns the string of the given image instance. This will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
823 only be non-@code{nil} for text image instances.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
824 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
825
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
826 @defun image-instance-file-name image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
827 This function returns the file name from which @var{image-instance} was
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
828 read, if known.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
829 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
830
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
831 @defun image-instance-mask-file-name image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
832 This function returns the file name from which @var{image-instance}'s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
833 mask was read, if known.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
834 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
835
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
836 @defun image-instance-depth image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
837 This function returns the depth of the image instance. This is 0 for a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
838 mono pixmap, or a positive integer for a color pixmap.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
839 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
840
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
841 @defun image-instance-height image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
842 This function returns the height of the image instance, in pixels.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
843 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
844
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
845 @defun image-instance-width image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
846 This function returns the width of the image instance, in pixels.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
847 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
848
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
849 @defun image-instance-hotspot-x image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
850 This function returns the X coordinate of the image instance's hotspot,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
851 if known. This is a point relative to the origin of the pixmap. When
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
852 an image is used as a mouse pointer, the hotspot is the point on the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
853 image that sits over the location that the pointer points to. This is,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
854 for example, the tip of the arrow or the center of the crosshairs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
855
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
856 This will always be @code{nil} for a non-pointer image instance.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
857 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
858
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
859 @defun image-instance-hotspot-y image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
860 This function returns the Y coordinate of the image instance's hotspot,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
861 if known.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
862 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
863
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
864 @defun image-instance-foreground image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
865 This function returns the foreground color of @var{image-instance}, if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
866 applicable. This will be a color instance or @code{nil}. (It will only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
867 be non-@code{nil} for colorized mono pixmaps and for pointers.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
868 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
869
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
870 @defun image-instance-background image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
871 This function returns the background color of @var{image-instance}, if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
872 applicable. This will be a color instance or @code{nil}. (It will only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
873 be non-@code{nil} for colorized mono pixmaps and for pointers.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
874 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
875
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
876
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
877 @node Glyph Types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
878 @section Glyph Types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
879
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
880 Each glyph has a particular type, which controls how the glyph's image
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
881 is generated. Each glyph type has a corresponding list of allowable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
882 image instance types that can be generated. When you call
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
883 @code{glyph-image-instance} to retrieve the image instance of a glyph,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
884 XEmacs does the equivalent of calling @code{make-image-instance} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
885 passing in @var{dest-types} the list of allowable image instance types
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
886 for the glyph's type.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
887
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
888 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
889 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
890 @code{buffer} glyphs can be used as the begin-glyph or end-glyph of an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
891 extent, in the modeline, and in the toolbar. Their image can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
892 instantiated as @code{nothing}, @code{mono-pixmap}, @code{color-pixmap},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
893 @code{text}, and @code{subwindow}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
894
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
895 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
896 @code{pointer} glyphs can be used to specify the mouse pointer. Their
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
897 image can be instantiated as @code{pointer}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
898
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
899 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
900 @code{icon} glyphs can be used to specify the icon used when a frame is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
901 iconified. Their image can be instantiated as @code{mono-pixmap} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
902 @code{color-pixmap}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
903 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
904
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
905 @defun glyph-type glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
906 This function returns the type of the given glyph. The return value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
907 will be a symbol, one of @code{buffer}, @code{pointer}, or @code{icon}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
908 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
909
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
910 @defun valid-glyph-type-p glyph-type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
911 Given a @var{glyph-type}, this function returns non-@code{nil} if it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
912 valid.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
913 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
914
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
915 @defun glyph-type-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
916 This function returns a list of valid glyph types.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
917 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
918
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
919 @defun buffer-glyph-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
920 This function returns non-@code{nil} if @var{object} is a glyph of type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
921 @code{buffer}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
922 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
923
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
924 @defun icon-glyph-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
925 This function returns non-@code{nil} if @var{object} is a glyph of type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
926 @code{icon}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
927 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
928
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
929 @defun pointer-glyph-p object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
930 This function returns non-@code{nil} if @var{object} is a glyph of type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
931 @code{pointer}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
932 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
933
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
934 @node Mouse Pointer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
935 @section Mouse Pointer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
936 @cindex mouse cursor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
937 @cindex cursor (mouse)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
938 @cindex pointer (mouse)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
939 @cindex mouse pointer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
940
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
941 The shape of the mouse pointer when over a particular section of a frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
942 is controlled using various glyph variables. Since the image of a glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
943 is a specifier, it can be controlled on a per-buffer, per-frame, per-window,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
944 or per-device basis.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
945
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
946 You should use @code{set-glyph-image} to set the following variables,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
947 @emph{not} @code{setq}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
948
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
949 @defvr Glyph text-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
950 This variable specifies the shape of the mouse pointer when over text.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
951 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
952
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
953 @defvr Glyph nontext-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
954 This variable specifies the shape of the mouse pointer when over a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
955 buffer, but not over text. If unspecified in a particular domain,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
956 @code{text-pointer-glyph} is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
957 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
958
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
959 @defvr Glyph modeline-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
960 This variable specifies the shape of the mouse pointer when over the modeline.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
961 If unspecified in a particular domain, @code{nontext-pointer-glyph} is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
962 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
963
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
964 @defvr Glyph selection-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
965 This variable specifies the shape of the mouse pointer when over a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
966 selectable text region. If unspecified in a particular domain,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
967 @code{text-pointer-glyph} is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
968 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
969
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
970 @defvr Glyph gc-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
971 This variable specifies the shape of the mouse pointer when a garbage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
972 collection is in progress. If the selected window is on a window system
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
973 and this glyph specifies a value (i.e. a pointer image instance) in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
974 domain of the selected window, the pointer will be changed as specified
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
975 during garbage collection. Otherwise, a message will be printed in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
976 echo area, as controlled by @code{gc-message}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
977 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
978
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
979 @defvr Glyph busy-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
980 This variable specifies the shape of the mouse pointer when XEmacs is busy.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
981 If unspecified in a particular domain, the pointer is not changed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
982 when XEmacs is busy.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
983 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
984
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
985 @defvr Glyph menubar-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
986 This variable specifies the shape of the mouse pointer when over the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
987 menubar. If unspecified in a particular domain, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
988 window-system-provided default pointer is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
989 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
990
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
991 @defvr Glyph scrollbar-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
992 This variable specifies the shape of the mouse pointer when over a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
993 scrollbar. If unspecified in a particular domain, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
994 window-system-provided default pointer is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
995 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
996
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
997 @defvr Glyph toolbar-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
998 This variable specifies the shape of the mouse pointer when over a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
999 toolbar. If unspecified in a particular domain,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1000 @code{nontext-pointer-glyph} is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1001 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1002
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1003 Internally, these variables are implemented in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1004 @code{default-mouse-motion-handler}, and thus only take effect when the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1005 mouse moves. That function calls @code{set-frame-pointer}, which sets
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1006 the current mouse pointer for a frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1007
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1008 @defun set-frame-pointer frame image-instance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1009 This function sets the mouse pointer of @var{frame} to the given pointer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1010 image instance. You should not call this function directly.
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
1011 (If you do, the pointer will change again the next time the mouse moves.)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1012 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1013
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1014 @node Redisplay Glyphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1015 @section Redisplay Glyphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1016
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1017 @defvr Glyph truncation-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1018 This variable specifies what is displayed at the end of truncated lines.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1019 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1020
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1021 @defvr Glyph continuation-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1022 This variable specifies what is displayed at the end of wrapped lines.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1023 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1024
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1025 @defvr Glyph octal-escape-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1026 This variable specifies what to prefix character codes displayed in octal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1027 with.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1028 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1029
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1030 @defvr Glyph hscroll-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1031 This variable specifies what to display at the beginning of horizontally
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1032 scrolled lines.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1033 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1034
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1035 @defvr Glyph invisible-text-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1036 This variable specifies what to use to indicate the presence of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1037 invisible text. This is the glyph that is displayed when an ellipsis is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1038 called for, according to @code{selective-display-ellipses} or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1039 @code{buffer-invisibility-spec}). Normally this is three dots (``...'').
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1040 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1041
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1042 @defvr Glyph control-arrow-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1043 This variable specifies what to use as an arrow for control characters.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1044 @end defvr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1045
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1046 @node Subwindows
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1047 @section Subwindows
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1048
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1049 Subwindows are not currently implemented.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1050
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1051 @defun subwindowp object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1052 This function returns non-@code{nil} if @var{object} is a subwindow.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1053 @end defun