Mercurial > emacs
annotate lispref/frames.texi @ 39625:e441240482b2
(add-change-log-entry): Skip copyright notice
and copying permission notice at start of file, if any.
Make use of terms "entry" and "item" accord with Emacs manual.
Simplify the logic for moving point while entering or creating
an entry and then an item.
(add-change-log-entry-other-window): Doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 06 Oct 2001 02:32:54 +0000 |
parents | af867d560348 |
children | 34f1a01f25fa |
rev | line source |
---|---|
6547 | 1 @c -*-texinfo-*- |
2 @c This is part of the GNU Emacs Lisp Reference Manual. | |
27189 | 3 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 |
4 @c Free Software Foundation, Inc. | |
6547 | 5 @c See the file elisp.texi for copying conditions. |
6 @setfilename ../info/frames | |
7 @node Frames, Positions, Windows, Top | |
8 @chapter Frames | |
9 @cindex frame | |
10 | |
13155
0b8e0559dcee
Fix several minor errors.
Richard M. Stallman <rms@gnu.org>
parents:
12676
diff
changeset
|
11 A @dfn{frame} is a rectangle on the screen that contains one or more |
6547 | 12 Emacs windows. A frame initially contains a single main window (plus |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
13 perhaps a minibuffer window), which you can subdivide vertically or |
6547 | 14 horizontally into smaller windows. |
15 | |
16 @cindex terminal frame | |
12067 | 17 When Emacs runs on a text-only terminal, it starts with one |
12125
995be67f3fd1
updates for version 19.29.
Melissa Weisshaus <melissa@gnu.org>
parents:
12098
diff
changeset
|
18 @dfn{terminal frame}. If you create additional ones, Emacs displays |
12067 | 19 one and only one at any given time---on the terminal screen, of course. |
20 | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
21 @cindex window frame |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
22 When Emacs communicates directly with a supported window system, such |
35476 | 23 as X, it does not have a terminal frame; instead, it starts with |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
24 a single @dfn{window frame}, but you can create more, and Emacs can |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
25 display several such frames at once as is usual for window systems. |
6547 | 26 |
27 @defun framep object | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
28 This predicate returns a non-@code{nil} value if @var{object} is a |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
29 frame, and @code{nil} otherwise. For a frame, the value indicates which |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
30 kind of display the frame uses: |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
31 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
32 @table @code |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
33 @item x |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
34 The frame is displayed in an X window. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
35 @item t |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
36 A terminal frame on a character display. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
37 @item mac |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
38 The frame is displayed on a Macintosh. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
39 @item w32 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
40 The frame is displayed on MS-Windows 9X/NT. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
41 @item pc |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
42 The frame is displayed on an MS-DOS terminal. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
43 @end table |
6547 | 44 @end defun |
45 | |
46 @menu | |
12067 | 47 * Creating Frames:: Creating additional frames. |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
48 * Multiple Displays:: Creating frames on other displays. |
6547 | 49 * Frame Parameters:: Controlling frame size, position, font, etc. |
12067 | 50 * Frame Titles:: Automatic updating of frame titles. |
6547 | 51 * Deleting Frames:: Frames last until explicitly deleted. |
52 * Finding All Frames:: How to examine all existing frames. | |
53 * Frames and Windows:: A frame contains windows; | |
54 display of text always works through windows. | |
55 * Minibuffers and Frames:: How a frame finds the minibuffer to use. | |
56 * Input Focus:: Specifying the selected frame. | |
57 * Visibility of Frames:: Frames may be visible or invisible, or icons. | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
58 * Raising and Lowering:: Raising a frame makes it hide other windows; |
6547 | 59 lowering it makes the others hide them. |
60 * Frame Configurations:: Saving the state of all frames. | |
61 * Mouse Tracking:: Getting events that say when the mouse moves. | |
62 * Mouse Position:: Asking where the mouse is, or moving it. | |
63 * Pop-Up Menus:: Displaying a menu for the user to select from. | |
64 * Dialog Boxes:: Displaying a box to ask yes or no. | |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
65 * Pointer Shapes:: Specifying the shape of the mouse pointer. |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
66 * Window System Selections:: Transferring text to and from other X clients. |
12098 | 67 * Color Names:: Getting the definitions of color names. |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
68 * Text Terminal Colors:: Defining colors for text-only terminals. |
6547 | 69 * Resources:: Getting resource values from the server. |
27447
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
70 * Display Feature Testing:: Determining the features of a terminal. |
6547 | 71 @end menu |
72 | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
73 @xref{Display}, for information about the related topic of |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
74 controlling Emacs redisplay. |
6547 | 75 |
76 @node Creating Frames | |
77 @section Creating Frames | |
78 | |
79 To create a new frame, call the function @code{make-frame}. | |
80 | |
13155
0b8e0559dcee
Fix several minor errors.
Richard M. Stallman <rms@gnu.org>
parents:
12676
diff
changeset
|
81 @defun make-frame &optional alist |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
82 This function creates a new frame. If you are using a supported window |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
83 system, it makes a window frame; otherwise, it makes a terminal frame. |
6547 | 84 |
85 The argument is an alist specifying frame parameters. Any parameters | |
86 not mentioned in @var{alist} default according to the value of the | |
12098 | 87 variable @code{default-frame-alist}; parameters not specified even there |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
88 default from the standard X resources or whatever is used instead on |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
89 your system. |
6547 | 90 |
91 The set of possible parameters depends in principle on what kind of | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
92 window system Emacs uses to display its frames. @xref{Window Frame |
12067 | 93 Parameters}, for documentation of individual parameters you can specify. |
6547 | 94 @end defun |
95 | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
96 @defvar before-make-frame-hook |
6547 | 97 A normal hook run by @code{make-frame} before it actually creates the |
98 frame. | |
99 @end defvar | |
100 | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
101 @defvar after-make-frame-functions |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
102 @tindex after-make-frame-functions |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
103 An abnormal hook run by @code{make-frame} after it creates the frame. |
32596
1cb37313bcac
Obsolete variable `after-make-frame-hook'.
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
31375
diff
changeset
|
104 Each function in @code{after-make-frame-functions} receives one argument, the |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
105 frame just created. |
6547 | 106 @end defvar |
107 | |
12067 | 108 @node Multiple Displays |
109 @section Multiple Displays | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
110 @cindex multiple X displays |
12067 | 111 @cindex displays, multiple |
112 | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
113 A single Emacs can talk to more than one X display. |
12067 | 114 Initially, Emacs uses just one display---the one chosen with the |
115 @code{DISPLAY} environment variable or with the @samp{--display} option | |
116 (@pxref{Initial Options,,, emacs, The GNU Emacs Manual}). To connect to | |
117 another display, use the command @code{make-frame-on-display} or specify | |
118 the @code{display} frame parameter when you create the frame. | |
119 | |
120 Emacs treats each X server as a separate terminal, giving each one its | |
39402
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
121 own selected frame and its own minibuffer windows. However, only one of |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
122 those frames is ``@emph{the} selected frame'' at any given moment, see |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
123 @ref{Input Focus}. |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
124 |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
125 A few Lisp variables are @dfn{terminal-local}; that is, they have a |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
126 separate binding for each terminal. The binding in effect at any time |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
127 is the one for the terminal that the currently selected frame belongs |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
128 to. These variables include @code{default-minibuffer-frame}, |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
129 @code{defining-kbd-macro}, @code{last-kbd-macro}, and |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
130 @code{system-key-alist}. They are always terminal-local, and can never |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
131 be buffer-local (@pxref{Buffer-Local Variables}) or frame-local. |
12067 | 132 |
133 A single X server can handle more than one screen. A display name | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
134 @samp{@var{host}:@var{server}.@var{screen}} has three parts; the last |
12067 | 135 part specifies the screen number for a given server. When you use two |
136 screens belonging to one server, Emacs knows by the similarity in their | |
137 names that they share a single keyboard, and it treats them as a single | |
138 terminal. | |
139 | |
140 @deffn Command make-frame-on-display display &optional parameters | |
141 This creates a new frame on display @var{display}, taking the other | |
142 frame parameters from @var{parameters}. Aside from the @var{display} | |
143 argument, it is like @code{make-frame} (@pxref{Creating Frames}). | |
144 @end deffn | |
145 | |
146 @defun x-display-list | |
147 This returns a list that indicates which X displays Emacs has a | |
12098 | 148 connection to. The elements of the list are strings, and each one is |
149 a display name. | |
12067 | 150 @end defun |
151 | |
26388 | 152 @defun x-open-connection display &optional xrm-string must-succeed |
12067 | 153 This function opens a connection to the X display @var{display}. It |
154 does not create a frame on that display, but it permits you to check | |
155 that communication can be established with that display. | |
156 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
157 The optional argument @var{xrm-string}, if not @code{nil}, is a |
12098 | 158 string of resource names and values, in the same format used in the |
159 @file{.Xresources} file. The values you specify override the resource | |
160 values recorded in the X server itself; they apply to all Emacs frames | |
161 created on this display. Here's an example of what this string might | |
162 look like: | |
163 | |
164 @example | |
165 "*BorderWidth: 3\n*InternalBorder: 2\n" | |
166 @end example | |
167 | |
168 @xref{Resources}. | |
26388 | 169 |
170 If @var{must-succeed} is non-@code{nil}, failure to open the connection | |
171 terminates Emacs. Otherwise, it is an ordinary Lisp error. | |
12067 | 172 @end defun |
173 | |
174 @defun x-close-connection display | |
175 This function closes the connection to display @var{display}. Before | |
176 you can do this, you must first delete all the frames that were open on | |
177 that display (@pxref{Deleting Frames}). | |
178 @end defun | |
179 | |
6547 | 180 @node Frame Parameters |
181 @section Frame Parameters | |
182 | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
183 A frame has many parameters that control its appearance and behavior. |
6547 | 184 Just what parameters a frame has depends on what display mechanism it |
185 uses. | |
186 | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
187 Frame parameters exist mostly for the sake of window systems. A |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
188 terminal frame has a few parameters, mostly for compatibility's sake; |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
189 only the @code{height}, @code{width}, @code{name}, @code{title}, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
190 @code{menu-bar-lines}, @code{buffer-list} and @code{buffer-predicate} |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
191 parameters do something special. If the terminal supports colors, the |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
192 parameters @code{foreground-color}, @code{background-color}, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
193 @code{background-mode} and @code{display-type} are also meaningful. |
6547 | 194 |
195 @menu | |
196 * Parameter Access:: How to change a frame's parameters. | |
197 * Initial Parameters:: Specifying frame parameters when you make a frame. | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
198 * Window Frame Parameters:: List of frame parameters for window systems. |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
199 * Size and Position:: Changing the size and position of a frame. |
6547 | 200 @end menu |
201 | |
202 @node Parameter Access | |
203 @subsection Access to Frame Parameters | |
204 | |
205 These functions let you read and change the parameter values of a | |
206 frame. | |
207 | |
26388 | 208 @defun frame-parameter frame parameter |
209 @tindex frame-parameter | |
210 This function returns the value of the parameter named @var{parameter} | |
211 of @var{frame}. If @var{frame} is @code{nil}, it returns the | |
212 selected frame's parameter. | |
213 @end defun | |
214 | |
6547 | 215 @defun frame-parameters frame |
216 The function @code{frame-parameters} returns an alist listing all the | |
217 parameters of @var{frame} and their values. | |
218 @end defun | |
219 | |
220 @defun modify-frame-parameters frame alist | |
221 This function alters the parameters of frame @var{frame} based on the | |
222 elements of @var{alist}. Each element of @var{alist} has the form | |
223 @code{(@var{parm} . @var{value})}, where @var{parm} is a symbol naming a | |
224 parameter. If you don't mention a parameter in @var{alist}, its value | |
225 doesn't change. | |
226 @end defun | |
227 | |
228 @node Initial Parameters | |
229 @subsection Initial Frame Parameters | |
230 | |
231 You can specify the parameters for the initial startup frame | |
25875 | 232 by setting @code{initial-frame-alist} in your init file (@pxref{Init File}). |
6547 | 233 |
234 @defvar initial-frame-alist | |
235 This variable's value is an alist of parameter values used when creating | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
236 the initial window frame. You can set this variable to specify the |
16528
62be63ee468d
Clarify initial-frame-alist and default-frame-alist.
Richard M. Stallman <rms@gnu.org>
parents:
15061
diff
changeset
|
237 appearance of the initial frame without altering subsequent frames. |
62be63ee468d
Clarify initial-frame-alist and default-frame-alist.
Richard M. Stallman <rms@gnu.org>
parents:
15061
diff
changeset
|
238 Each element has the form: |
8110
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
239 |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
240 @example |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
241 (@var{parameter} . @var{value}) |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
242 @end example |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
243 |
25875 | 244 Emacs creates the initial frame before it reads your init |
8110
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
245 file. After reading that file, Emacs checks @code{initial-frame-alist}, |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
246 and applies the parameter settings in the altered value to the already |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
247 created initial frame. |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
248 |
12098 | 249 If these settings affect the frame geometry and appearance, you'll see |
250 the frame appear with the wrong ones and then change to the specified | |
251 ones. If that bothers you, you can specify the same geometry and | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
252 appearance with X resources; those do take effect before the frame is |
12098 | 253 created. @xref{Resources X,, X Resources, emacs, The GNU Emacs Manual}. |
8110
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
254 |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
255 X resource settings typically apply to all frames. If you want to |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
256 specify some X resources solely for the sake of the initial frame, and |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
257 you don't want them to apply to subsequent frames, here's how to achieve |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
258 this. Specify parameters in @code{default-frame-alist} to override the |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
259 X resources for subsequent frames; then, to prevent these from affecting |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
260 the initial frame, specify the same parameters in |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
261 @code{initial-frame-alist} with values that match the X resources. |
6547 | 262 @end defvar |
263 | |
12098 | 264 If these parameters specify a separate minibuffer-only frame with |
265 @code{(minibuffer . nil)}, and you have not created one, Emacs creates | |
266 one for you. | |
6547 | 267 |
268 @defvar minibuffer-frame-alist | |
269 This variable's value is an alist of parameter values used when creating | |
270 an initial minibuffer-only frame---if such a frame is needed, according | |
271 to the parameters for the main initial frame. | |
272 @end defvar | |
273 | |
8110
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
274 @defvar default-frame-alist |
16528
62be63ee468d
Clarify initial-frame-alist and default-frame-alist.
Richard M. Stallman <rms@gnu.org>
parents:
15061
diff
changeset
|
275 This is an alist specifying default values of frame parameters for all |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
276 Emacs frames---the first frame, and subsequent frames. When using the X |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
277 Window System, you can get the same results by means of X resources |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
278 in many cases. |
8110
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
279 @end defvar |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
280 |
12098 | 281 See also @code{special-display-frame-alist}, in @ref{Choosing Window}. |
282 | |
8110
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
283 If you use options that specify window appearance when you invoke Emacs, |
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
284 they take effect by adding elements to @code{default-frame-alist}. One |
12098 | 285 exception is @samp{-geometry}, which adds the specified position to |
286 @code{initial-frame-alist} instead. @xref{Command Arguments,,, emacs, | |
287 The GNU Emacs Manual}. | |
8110
bf6ecdddf78b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7684
diff
changeset
|
288 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
289 @node Window Frame Parameters |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
290 @subsection Window Frame Parameters |
6547 | 291 |
292 Just what parameters a frame has depends on what display mechanism it | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
293 uses. Here is a table of the parameters that have special meanings in a |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
294 window frame; of these, @code{name}, @code{title}, @code{height}, |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
295 @code{width}, @code{buffer-list} and @code{buffer-predicate} provide |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
296 meaningful information in terminal frames. |
6547 | 297 |
298 @table @code | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
299 @item display |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
300 The display on which to open this frame. It should be a string of the |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
301 form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
302 @code{DISPLAY} environment variable. |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
303 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
304 @item title |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
305 If a frame has a non-@code{nil} title, it appears in the window system's |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
306 border for the frame, and also in the mode line of windows in that frame |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
307 if @code{mode-line-frame-identification} uses @samp{%F} |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
308 (@pxref{%-Constructs}). This is normally the case when Emacs is not |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
309 using a window system, and can only display one frame at a time. |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
310 @xref{Frame Titles}. |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
311 |
6547 | 312 @item name |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
313 The name of the frame. The frame name serves as a default for the frame |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
314 title, if the @code{title} parameter is unspecified or @code{nil}. If |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
315 you don't specify a name, Emacs sets the frame name automatically |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
316 (@pxref{Frame Titles}). |
6547 | 317 |
318 If you specify the frame name explicitly when you create the frame, the | |
319 name is also used (instead of the name of the Emacs executable) when | |
320 looking up X resources for the frame. | |
321 | |
322 @item left | |
12067 | 323 The screen position of the left edge, in pixels, with respect to the |
324 left edge of the screen. The value may be a positive number @var{pos}, | |
325 or a list of the form @code{(+ @var{pos})} which permits specifying a | |
326 negative @var{pos} value. | |
327 | |
328 A negative number @minus{}@var{pos}, or a list of the form @code{(- | |
329 @var{pos})}, actually specifies the position of the right edge of the | |
12098 | 330 window with respect to the right edge of the screen. A positive value |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
331 of @var{pos} counts toward the left. @strong{Reminder:} if the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
332 parameter is a negative integer @minus{}@var{pos}, then @var{pos} is |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
333 positive. |
6547 | 334 |
12388
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
335 Some window managers ignore program-specified positions. If you want to |
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
336 be sure the position you specify is not ignored, specify a |
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
337 non-@code{nil} value for the @code{user-position} parameter as well. |
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
338 |
6547 | 339 @item top |
12067 | 340 The screen position of the top edge, in pixels, with respect to the |
341 top edge of the screen. The value may be a positive number @var{pos}, | |
342 or a list of the form @code{(+ @var{pos})} which permits specifying a | |
343 negative @var{pos} value. | |
344 | |
345 A negative number @minus{}@var{pos}, or a list of the form @code{(- | |
346 @var{pos})}, actually specifies the position of the bottom edge of the | |
12098 | 347 window with respect to the bottom edge of the screen. A positive value |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
348 of @var{pos} counts toward the top. @strong{Reminder:} if the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
349 parameter is a negative integer @minus{}@var{pos}, then @var{pos} is |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
350 positive. |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
351 |
12388
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
352 Some window managers ignore program-specified positions. If you want to |
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
353 be sure the position you specify is not ignored, specify a |
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
354 non-@code{nil} value for the @code{user-position} parameter as well. |
35668330115e
Clarify need for user-position to get left and top obeyed.
Richard M. Stallman <rms@gnu.org>
parents:
12125
diff
changeset
|
355 |
10220
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
356 @item icon-left |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
357 The screen position of the left edge @emph{of the frame's icon}, in |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
358 pixels, counting from the left edge of the screen. This takes effect if |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
359 and when the frame is iconified. |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
360 |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
361 @item icon-top |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
362 The screen position of the top edge @emph{of the frame's icon}, in |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
363 pixels, counting from the top edge of the screen. This takes effect if |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
364 and when the frame is iconified. |
126f7560fd28
Add icon-left and icon-top frame parameters.
Richard M. Stallman <rms@gnu.org>
parents:
9453
diff
changeset
|
365 |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
366 @item user-position |
14658
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
367 When you create a frame and specify its screen position with the |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
368 @code{left} and @code{top} parameters, use this parameter to say whether |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
369 the specified position was user-specified (explicitly requested in some |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
370 way by a human user) or merely program-specified (chosen by a program). |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
371 A non-@code{nil} value says the position was user-specified. |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
372 |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
373 Window managers generally heed user-specified positions, and some heed |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
374 program-specified positions too. But many ignore program-specified |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
375 positions, placing the window in a default fashion or letting the user |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
376 place it with the mouse. Some window managers, including @code{twm}, |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
377 let the user specify whether to obey program-specified positions or |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
378 ignore them. |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
379 |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
380 When you call @code{make-frame}, you should specify a non-@code{nil} |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
381 value for this parameter if the values of the @code{left} and @code{top} |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
382 parameters represent the user's stated preference; otherwise, use |
c2ed969842dc
Clarify purpose of user-position parameter.
Richard M. Stallman <rms@gnu.org>
parents:
14200
diff
changeset
|
383 @code{nil}. |
6547 | 384 |
385 @item height | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
386 The height of the frame contents, in characters. (To get the height in |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
387 pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.) |
6547 | 388 |
389 @item width | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
390 The width of the frame contents, in characters. (To get the height in |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
391 pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.) |
6547 | 392 |
393 @item window-id | |
24951
7451b1458af1
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22843
diff
changeset
|
394 The number of the window-system window used by the frame |
7451b1458af1
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22843
diff
changeset
|
395 to contain the actual Emacs windows. |
7451b1458af1
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22843
diff
changeset
|
396 |
7451b1458af1
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22843
diff
changeset
|
397 @item outer-window-id |
7451b1458af1
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22843
diff
changeset
|
398 The number of the outermost window-system window used for the whole frame. |
6547 | 399 |
400 @item minibuffer | |
401 Whether this frame has its own minibuffer. The value @code{t} means | |
402 yes, @code{nil} means no, @code{only} means this frame is just a | |
12098 | 403 minibuffer. If the value is a minibuffer window (in some other frame), |
404 the new frame uses that minibuffer. | |
6547 | 405 |
12067 | 406 @item buffer-predicate |
407 The buffer-predicate function for this frame. The function | |
408 @code{other-buffer} uses this predicate (from the selected frame) to | |
409 decide which buffers it should consider, if the predicate is not | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
410 @code{nil}. It calls the predicate with one argument, a buffer, once for |
12067 | 411 each buffer; if the predicate returns a non-@code{nil} value, it |
412 considers that buffer. | |
413 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
414 @item buffer-list |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
415 A list of buffers that have been selected in this frame, |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
416 ordered most-recently-selected first. |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
417 |
6547 | 418 @item font |
419 The name of the font for displaying text in the frame. This is a | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
420 string, either a valid font name for your system or the name of an Emacs |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
421 fontset (@pxref{Fontsets}). Changing this frame parameter on a frame |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
422 also changes the font-related attributes of the default face on that |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
423 frame. |
6547 | 424 |
425 @item auto-raise | |
426 Whether selecting the frame raises it (non-@code{nil} means yes). | |
427 | |
428 @item auto-lower | |
429 Whether deselecting the frame lowers it (non-@code{nil} means yes). | |
430 | |
431 @item vertical-scroll-bars | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
432 Whether the frame has scroll bars for vertical scrolling, and which side |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
433 of the frame they should be on. The possible values are @code{left}, |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
434 @code{right}, and @code{nil} for no scroll bars. |
6547 | 435 |
436 @item horizontal-scroll-bars | |
437 Whether the frame has scroll bars for horizontal scrolling | |
438 (non-@code{nil} means yes). (Horizontal scroll bars are not currently | |
439 implemented.) | |
440 | |
12067 | 441 @item scroll-bar-width |
442 The width of the vertical scroll bar, in pixels. | |
443 | |
6547 | 444 @item icon-type |
10759
fe6bdcb0d99f
Update icon-type values.
Richard M. Stallman <rms@gnu.org>
parents:
10220
diff
changeset
|
445 The type of icon to use for this frame when it is iconified. If the |
fe6bdcb0d99f
Update icon-type values.
Richard M. Stallman <rms@gnu.org>
parents:
10220
diff
changeset
|
446 value is a string, that specifies a file containing a bitmap to use. |
fe6bdcb0d99f
Update icon-type values.
Richard M. Stallman <rms@gnu.org>
parents:
10220
diff
changeset
|
447 Any other non-@code{nil} value specifies the default bitmap icon (a |
fe6bdcb0d99f
Update icon-type values.
Richard M. Stallman <rms@gnu.org>
parents:
10220
diff
changeset
|
448 picture of a gnu); @code{nil} specifies a text icon. |
6547 | 449 |
12098 | 450 @item icon-name |
451 The name to use in the icon for this frame, when and if the icon | |
452 appears. If this is @code{nil}, the frame's title is used. | |
453 | |
6547 | 454 @item foreground-color |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
455 The color to use for the image of a character. This is a string; the |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
456 window system defines the meaningful color names. Changing this |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
457 parameter is equivalent to changing the foreground color of the face |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
458 @code{default} on the frame in question. |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
459 |
6547 | 460 @item background-color |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
461 The color to use for the background of characters. Changing this |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
462 parameter is equivalent to changing the foreground color of the face |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
463 @code{default} on the frame in question. |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
464 |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
465 @item background-mode |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
466 This parameter is either @code{dark} or @code{light}, according |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
467 to whether the background color is a light one or a dark one. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
468 |
6547 | 469 @item mouse-color |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
470 The color for the mouse pointer. Changing this parameter is equivalent |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
471 to changing the background color of face @code{mouse}. |
6547 | 472 |
473 @item cursor-color | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
474 The color for the cursor that shows point. Changing this parameter is |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
475 equivalent to changing the background color of face @code{cursor}. |
6547 | 476 |
477 @item border-color | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
478 The color for the border of the frame. Changing this parameter is |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
479 equivalent to changing the background color of face @code{border}. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
480 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
481 @item scroll-bar-foreground |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
482 If non-@code{nil}, the color for the foreground of scroll bars. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
483 Changing this parameter is equivalent to setting the foreground color of |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
484 face @code{scroll-bar}. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
485 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
486 @item scroll-bar-background |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
487 If non-@code{nil}, the color for the background of scroll bars. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
488 Changing this parameter is equivalent to setting the foreground color of |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
489 face @code{scroll-bar}. |
6547 | 490 |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
491 @item display-type |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
492 This parameter describes the range of possible colors that can be used |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
493 in this frame. Its value is @code{color}, @code{grayscale} or |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
494 @code{mono}. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
495 |
6547 | 496 @item cursor-type |
12067 | 497 The way to display the cursor. The legitimate values are @code{bar}, |
498 @code{box}, and @code{(bar . @var{width})}. The symbol @code{box} | |
499 specifies an ordinary black box overlaying the character after point; | |
500 that is the default. The symbol @code{bar} specifies a vertical bar | |
501 between characters as the cursor. @code{(bar . @var{width})} specifies | |
502 a bar @var{width} pixels wide. | |
6547 | 503 |
39221
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
504 @vindex cursor-type |
39197
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
505 The buffer-local variable @code{cursor-type} overrides the value of |
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
506 the @code{cursor-type} frame parameter, and can in addition have |
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
507 values @code{t} (use the cursor specified for the frame) and |
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
508 @code{nil} (don't display a cursor). |
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
509 |
6547 | 510 @item border-width |
511 The width in pixels of the window border. | |
512 | |
513 @item internal-border-width | |
514 The distance in pixels between text and border. | |
515 | |
516 @item unsplittable | |
517 If non-@code{nil}, this frame's window is never split automatically. | |
518 | |
519 @item visibility | |
520 The state of visibility of the frame. There are three possibilities: | |
521 @code{nil} for invisible, @code{t} for visible, and @code{icon} for | |
522 iconified. @xref{Visibility of Frames}. | |
523 | |
524 @item menu-bar-lines | |
525 The number of lines to allocate at the top of the frame for a menu bar. | |
9453 | 526 The default is 1. @xref{Menu Bar}. (In Emacs versions that use the X |
527 toolkit, there is only one menu bar line; all that matters about the | |
528 number you specify is whether it is greater than zero.) | |
6547 | 529 |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
530 @item screen-gamma |
31375 | 531 @cindex gamma correction |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
532 If this is a number, Emacs performs ``gamma correction'' on colors. The |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
533 value should be the screen gamma of your display, a floating point |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
534 number. Usual PC monitors have a screen gamma of 2.2, so the default is |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
535 to display for that gamma value. Specifying a smaller value results in |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
536 darker colors, which is desirable for a monitor that tends to display |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
537 colors too light. A screen gamma value of 1.5 may give good results for |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
538 LCD color displays. |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
539 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
540 @item tool-bar-lines |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
541 The number of lines to use for the toolbar. A value of @code{nil} means |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
542 don't display a tool bar. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
543 |
31375 | 544 @item line-spacing |
545 Additional space put below text lines in pixels (a positive integer). | |
546 | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
547 @ignore |
6547 | 548 @item parent-id |
549 @c ??? Not yet working. | |
550 The X window number of the window that should be the parent of this one. | |
551 Specifying this lets you create an Emacs window inside some other | |
552 application's window. (It is not certain this will be implemented; try | |
553 it and see if it works.) | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
554 @end ignore |
6547 | 555 @end table |
556 | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
557 @node Size and Position |
6547 | 558 @subsection Frame Size And Position |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
559 @cindex size of frame |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
560 @cindex screen size |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
561 @cindex frame size |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
562 @cindex resize frame |
6547 | 563 |
564 You can read or change the size and position of a frame using the | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
565 frame parameters @code{left}, @code{top}, @code{height}, and |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
566 @code{width}. Whatever geometry parameters you don't specify are chosen |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
567 by the window manager in its usual fashion. |
6547 | 568 |
39402
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
569 Here are some special features for working with sizes and positions. |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
570 (For the precise meaning of ``selected frame'' used by these functions, |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
571 see @ref{Input Focus}.) |
6547 | 572 |
573 @defun set-frame-position frame left top | |
12098 | 574 This function sets the position of the top left corner of @var{frame} to |
575 @var{left} and @var{top}. These arguments are measured in pixels, and | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
576 normally count from the top left corner of the screen. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
577 |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
578 Negative parameter values position the bottom edge of the window up from |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
579 the bottom edge of the screen, or the right window edge to the left of |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
580 the right edge of the screen. It would probably be better if the values |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
581 were always counted from the left and top, so that negative arguments |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
582 would position the frame partly off the top or left edge of the screen, |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
583 but it seems inadvisable to change that now. |
6547 | 584 @end defun |
585 | |
586 @defun frame-height &optional frame | |
587 @defunx frame-width &optional frame | |
588 These functions return the height and width of @var{frame}, measured in | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
589 lines and columns. If you don't supply @var{frame}, they use the |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
590 selected frame. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
591 @end defun |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
592 |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
593 @defun screen-height |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
594 @defunx screen-width |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
595 These functions are old aliases for @code{frame-height} and |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
596 @code{frame-width}. When you are using a non-window terminal, the size |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
597 of the frame is normally the same as the size of the terminal screen. |
6547 | 598 @end defun |
599 | |
600 @defun frame-pixel-height &optional frame | |
601 @defunx frame-pixel-width &optional frame | |
602 These functions return the height and width of @var{frame}, measured in | |
603 pixels. If you don't supply @var{frame}, they use the selected frame. | |
604 @end defun | |
605 | |
606 @defun frame-char-height &optional frame | |
607 @defunx frame-char-width &optional frame | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
608 These functions return the height and width of a character in |
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
609 @var{frame}, measured in pixels. The values depend on the choice of |
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
610 font. If you don't supply @var{frame}, these functions use the selected |
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
611 frame. |
6547 | 612 @end defun |
613 | |
614 @defun set-frame-size frame cols rows | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
615 This function sets the size of @var{frame}, measured in characters; |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
616 @var{cols} and @var{rows} specify the new width and height. |
6547 | 617 |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
618 To set the size based on values measured in pixels, use |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
619 @code{frame-char-height} and @code{frame-char-width} to convert |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
620 them to units of characters. |
6547 | 621 @end defun |
622 | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
623 @defun set-frame-height frame lines &optional pretend |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
624 This function resizes @var{frame} to a height of @var{lines} lines. The |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
625 sizes of existing windows in @var{frame} are altered proportionally to |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
626 fit. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
627 |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
628 If @var{pretend} is non-@code{nil}, then Emacs displays @var{lines} |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
629 lines of output in @var{frame}, but does not change its value for the |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
630 actual height of the frame. This is only useful for a terminal frame. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
631 Using a smaller height than the terminal actually implements may be |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
632 useful to reproduce behavior observed on a smaller screen, or if the |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
633 terminal malfunctions when using its whole screen. Setting the frame |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
634 height ``for real'' does not always work, because knowing the correct |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
635 actual size may be necessary for correct cursor positioning on a |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
636 terminal frame. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
637 @end defun |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
638 |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
639 @defun set-frame-width frame width &optional pretend |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
640 This function sets the width of @var{frame}, measured in characters. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
641 The argument @var{pretend} has the same meaning as in |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
642 @code{set-frame-height}. |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
643 @end defun |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
644 |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
645 @findex set-screen-height |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
646 @findex set-screen-width |
22267
dfac7398266b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22252
diff
changeset
|
647 The older functions @code{set-screen-height} and |
dfac7398266b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22252
diff
changeset
|
648 @code{set-screen-width} were used to specify the height and width of the |
dfac7398266b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22252
diff
changeset
|
649 screen, in Emacs versions that did not support multiple frames. They |
dfac7398266b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22252
diff
changeset
|
650 are semi-obsolete, but still work; they apply to the selected frame. |
6547 | 651 |
652 @defun x-parse-geometry geom | |
653 @cindex geometry specification | |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
654 The function @code{x-parse-geometry} converts a standard X window |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
655 geometry string to an alist that you can use as part of the argument to |
6547 | 656 @code{make-frame}. |
657 | |
658 The alist describes which parameters were specified in @var{geom}, and | |
659 gives the values specified for them. Each element looks like | |
660 @code{(@var{parameter} . @var{value})}. The possible @var{parameter} | |
661 values are @code{left}, @code{top}, @code{width}, and @code{height}. | |
662 | |
12067 | 663 For the size parameters, the value must be an integer. The position |
664 parameter names @code{left} and @code{top} are not totally accurate, | |
665 because some values indicate the position of the right or bottom edges | |
666 instead. These are the @var{value} possibilities for the position | |
667 parameters: | |
668 | |
669 @table @asis | |
670 @item an integer | |
671 A positive integer relates the left edge or top edge of the window to | |
672 the left or top edge of the screen. A negative integer relates the | |
673 right or bottom edge of the window to the right or bottom edge of the | |
674 screen. | |
675 | |
12098 | 676 @item @code{(+ @var{position})} |
12067 | 677 This specifies the position of the left or top edge of the window |
678 relative to the left or top edge of the screen. The integer | |
679 @var{position} may be positive or negative; a negative value specifies a | |
680 position outside the screen. | |
681 | |
12098 | 682 @item @code{(- @var{position})} |
12067 | 683 This specifies the position of the right or bottom edge of the window |
684 relative to the right or bottom edge of the screen. The integer | |
685 @var{position} may be positive or negative; a negative value specifies a | |
686 position outside the screen. | |
687 @end table | |
688 | |
689 Here is an example: | |
690 | |
12098 | 691 @example |
6547 | 692 (x-parse-geometry "35x70+0-0") |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
693 @result{} ((height . 70) (width . 35) |
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
694 (top - 0) (left . 0)) |
12098 | 695 @end example |
6547 | 696 @end defun |
697 | |
12067 | 698 @node Frame Titles |
699 @section Frame Titles | |
700 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
701 Every frame has a @code{name} parameter; this serves as the default |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
702 for the frame title which window systems typically display at the top of |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
703 the frame. You can specify a name explicitly by setting the @code{name} |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
704 frame property. |
12067 | 705 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
706 Normally you don't specify the name explicitly, and Emacs computes the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
707 frame name automatically based on a template stored in the variable |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
708 @code{frame-title-format}. Emacs recomputes the name each time the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
709 frame is redisplayed. |
12067 | 710 |
711 @defvar frame-title-format | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
712 This variable specifies how to compute a name for a frame when you have |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
713 not explicitly specified one. The variable's value is actually a mode |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
714 line construct, just like @code{mode-line-format}. @xref{Mode Line |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
715 Data}. |
12067 | 716 @end defvar |
717 | |
718 @defvar icon-title-format | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
719 This variable specifies how to compute the name for an iconified frame, |
12067 | 720 when you have not explicitly specified the frame title. This title |
721 appears in the icon itself. | |
722 @end defvar | |
723 | |
724 @defvar multiple-frames | |
725 This variable is set automatically by Emacs. Its value is @code{t} when | |
726 there are two or more frames (not counting minibuffer-only frames or | |
727 invisible frames). The default value of @code{frame-title-format} uses | |
728 @code{multiple-frames} so as to put the buffer name in the frame title | |
729 only when there is more than one frame. | |
730 @end defvar | |
731 | |
6547 | 732 @node Deleting Frames |
733 @section Deleting Frames | |
734 @cindex deletion of frames | |
735 | |
736 Frames remain potentially visible until you explicitly @dfn{delete} | |
737 them. A deleted frame cannot appear on the screen, but continues to | |
738 exist as a Lisp object until there are no references to it. There is no | |
739 way to cancel the deletion of a frame aside from restoring a saved frame | |
740 configuration (@pxref{Frame Configurations}); this is similar to the | |
741 way windows behave. | |
742 | |
26388 | 743 @deffn Command delete-frame &optional frame force |
34015 | 744 @vindex delete-frame-hook |
745 This function deletes the frame @var{frame} after running the hook | |
746 @code{delete-frame-hook}. By default, @var{frame} is the selected | |
747 frame. | |
26388 | 748 |
749 A frame cannot be deleted if its minibuffer is used by other frames. | |
750 Normally, you cannot delete a frame if all other frames are invisible, | |
751 but if the @var{force} is non-@code{nil}, then you are allowed to do so. | |
6547 | 752 @end deffn |
753 | |
754 @defun frame-live-p frame | |
755 The function @code{frame-live-p} returns non-@code{nil} if the frame | |
756 @var{frame} has not been deleted. | |
757 @end defun | |
758 | |
12067 | 759 Some window managers provide a command to delete a window. These work |
12125
995be67f3fd1
updates for version 19.29.
Melissa Weisshaus <melissa@gnu.org>
parents:
12098
diff
changeset
|
760 by sending a special message to the program that operates the window. |
12067 | 761 When Emacs gets one of these commands, it generates a |
762 @code{delete-frame} event, whose normal definition is a command that | |
763 calls the function @code{delete-frame}. @xref{Misc Events}. | |
764 | |
6547 | 765 @node Finding All Frames |
766 @section Finding All Frames | |
767 | |
768 @defun frame-list | |
769 The function @code{frame-list} returns a list of all the frames that | |
770 have not been deleted. It is analogous to @code{buffer-list} for | |
39504
af867d560348
(Finding All Frames): Document that next-frame and
Eli Zaretskii <eliz@gnu.org>
parents:
39402
diff
changeset
|
771 buffers, and includes frames on all terminals. The list that you get is |
af867d560348
(Finding All Frames): Document that next-frame and
Eli Zaretskii <eliz@gnu.org>
parents:
39402
diff
changeset
|
772 newly created, so modifying the list doesn't have any effect on the |
af867d560348
(Finding All Frames): Document that next-frame and
Eli Zaretskii <eliz@gnu.org>
parents:
39402
diff
changeset
|
773 internals of Emacs. |
6547 | 774 @end defun |
775 | |
776 @defun visible-frame-list | |
777 This function returns a list of just the currently visible frames. | |
12067 | 778 @xref{Visibility of Frames}. (Terminal frames always count as |
779 ``visible'', even though only the selected one is actually displayed.) | |
6547 | 780 @end defun |
781 | |
782 @defun next-frame &optional frame minibuf | |
783 The function @code{next-frame} lets you cycle conveniently through all | |
39504
af867d560348
(Finding All Frames): Document that next-frame and
Eli Zaretskii <eliz@gnu.org>
parents:
39402
diff
changeset
|
784 the frames on the current display from an arbitrary starting point. It |
af867d560348
(Finding All Frames): Document that next-frame and
Eli Zaretskii <eliz@gnu.org>
parents:
39402
diff
changeset
|
785 returns the ``next'' frame after @var{frame} in the cycle. If |
af867d560348
(Finding All Frames): Document that next-frame and
Eli Zaretskii <eliz@gnu.org>
parents:
39402
diff
changeset
|
786 @var{frame} is omitted or @code{nil}, it defaults to the selected frame |
af867d560348
(Finding All Frames): Document that next-frame and
Eli Zaretskii <eliz@gnu.org>
parents:
39402
diff
changeset
|
787 (@pxref{Input Focus}). |
6547 | 788 |
789 The second argument, @var{minibuf}, says which frames to consider: | |
790 | |
791 @table @asis | |
792 @item @code{nil} | |
793 Exclude minibuffer-only frames. | |
794 @item @code{visible} | |
795 Consider all visible frames. | |
12098 | 796 @item 0 |
797 Consider all visible or iconified frames. | |
6547 | 798 @item a window |
799 Consider only the frames using that particular window as their | |
800 minibuffer. | |
801 @item anything else | |
802 Consider all frames. | |
803 @end table | |
804 @end defun | |
805 | |
806 @defun previous-frame &optional frame minibuf | |
807 Like @code{next-frame}, but cycles through all frames in the opposite | |
808 direction. | |
809 @end defun | |
810 | |
12098 | 811 See also @code{next-window} and @code{previous-window}, in @ref{Cyclic |
812 Window Ordering}. | |
813 | |
6547 | 814 @node Frames and Windows |
815 @section Frames and Windows | |
816 | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
817 Each window is part of one and only one frame; you can get the frame |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
818 with @code{window-frame}. |
6547 | 819 |
820 @defun window-frame window | |
821 This function returns the frame that @var{window} is on. | |
822 @end defun | |
823 | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
824 All the non-minibuffer windows in a frame are arranged in a cyclic |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
825 order. The order runs from the frame's top window, which is at the |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
826 upper left corner, down and to the right, until it reaches the window at |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
827 the lower right corner (always the minibuffer window, if the frame has |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
828 one), and then it moves back to the top. @xref{Cyclic Window Ordering}. |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
829 |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
830 @defun frame-first-window frame |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
831 This returns the topmost, leftmost window of frame @var{frame}. |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
832 @end defun |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
833 |
6547 | 834 At any time, exactly one window on any frame is @dfn{selected within the |
835 frame}. The significance of this designation is that selecting the | |
836 frame also selects this window. You can get the frame's current | |
837 selected window with @code{frame-selected-window}. | |
838 | |
839 @defun frame-selected-window frame | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
840 This function returns the window on @var{frame} that is selected within |
6547 | 841 @var{frame}. |
842 @end defun | |
843 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
844 Conversely, selecting a window for Emacs with @code{select-window} also |
6547 | 845 makes that window selected within its frame. @xref{Selecting Windows}. |
846 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
847 Another function that (usually) returns one of the windows in a given |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
848 frame is @code{minibuffer-window}. @xref{Minibuffer Misc}. |
12098 | 849 |
6547 | 850 @node Minibuffers and Frames |
851 @section Minibuffers and Frames | |
852 | |
853 Normally, each frame has its own minibuffer window at the bottom, which | |
854 is used whenever that frame is selected. If the frame has a minibuffer, | |
855 you can get it with @code{minibuffer-window} (@pxref{Minibuffer Misc}). | |
856 | |
857 However, you can also create a frame with no minibuffer. Such a frame | |
858 must use the minibuffer window of some other frame. When you create the | |
12098 | 859 frame, you can specify explicitly the minibuffer window to use (in some |
860 other frame). If you don't, then the minibuffer is found in the frame | |
861 which is the value of the variable @code{default-minibuffer-frame}. Its | |
862 value should be a frame that does have a minibuffer. | |
6547 | 863 |
864 If you use a minibuffer-only frame, you might want that frame to raise | |
865 when you enter the minibuffer. If so, set the variable | |
866 @code{minibuffer-auto-raise} to @code{t}. @xref{Raising and Lowering}. | |
867 | |
12067 | 868 @defvar default-minibuffer-frame |
869 This variable specifies the frame to use for the minibuffer window, by | |
12098 | 870 default. It is always local to the current terminal and cannot be |
12067 | 871 buffer-local. @xref{Multiple Displays}. |
872 @end defvar | |
873 | |
6547 | 874 @node Input Focus |
875 @section Input Focus | |
876 @cindex input focus | |
877 @cindex selected frame | |
878 | |
879 At any time, one frame in Emacs is the @dfn{selected frame}. The selected | |
880 window always resides on the selected frame. | |
881 | |
39402
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
882 When Emacs displays its frames on several terminals (@pxref{Multiple |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
883 Displays}), each terminal has its own selected frame. But only one of |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
884 these is ``@emph{the} selected frame'': it's the frame that belongs to |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
885 the terminal from which the most recent input came. That is, when Emacs |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
886 runs a command that came from a certain terminal, the selected frame is |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
887 the one of that terminal. Since Emacs runs only a single command at any |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
888 given time, it needs to consider only one selected frame at a time; this |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
889 frame is what we call @dfn{the selected frame} in this manual. The |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
890 display on which the selected frame is displayed is the @dfn{selected |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
891 frame's display}. |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
892 |
6547 | 893 @defun selected-frame |
894 This function returns the selected frame. | |
895 @end defun | |
896 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
897 Some window systems and window managers direct keyboard input to the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
898 window object that the mouse is in; others require explicit clicks or |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
899 commands to @dfn{shift the focus} to various window objects. Either |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
900 way, Emacs automatically keeps track of which frame has the focus. |
6547 | 901 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
902 Lisp programs can also switch frames ``temporarily'' by calling the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
903 function @code{select-frame}. This does not alter the window system's |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
904 concept of focus; rather, it escapes from the window manager's control |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
905 until that control is somehow reasserted. |
6547 | 906 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
907 When using a text-only terminal, only the selected terminal frame is |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
908 actually displayed on the terminal. @code{switch-frame} is the only way |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
909 to switch frames, and the change lasts until overridden by a subsequent |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
910 call to @code{switch-frame}. Each terminal screen except for the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
911 initial one has a number, and the number of the selected frame appears |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
912 in the mode line before the buffer name (@pxref{Mode Line Variables}). |
12067 | 913 |
6547 | 914 @c ??? This is not yet implemented properly. |
915 @defun select-frame frame | |
916 This function selects frame @var{frame}, temporarily disregarding the | |
12067 | 917 focus of the X server if any. The selection of @var{frame} lasts until |
918 the next time the user does something to select a different frame, or | |
39402
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
919 until the next time this function is called. The specified @var{frame} |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
920 becomes the selected frame, as explained above, and the terminal that |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
921 @var{frame} is on becomes the selected terminal. |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
922 |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
923 In general, you should never use @code{select-frame} in a way that could |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
924 switch to a different terminal without switching back when you're done. |
6547 | 925 @end defun |
926 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
927 Emacs cooperates with the window system by arranging to select frames as |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
928 the server and window manager request. It does so by generating a |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
929 special kind of input event, called a @dfn{focus} event, when |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
930 appropriate. The command loop handles a focus event by calling |
13155
0b8e0559dcee
Fix several minor errors.
Richard M. Stallman <rms@gnu.org>
parents:
12676
diff
changeset
|
931 @code{handle-switch-frame}. @xref{Focus Events}. |
6547 | 932 |
933 @deffn Command handle-switch-frame frame | |
934 This function handles a focus event by selecting frame @var{frame}. | |
935 | |
936 Focus events normally do their job by invoking this command. | |
937 Don't call it for any other reason. | |
938 @end deffn | |
939 | |
940 @defun redirect-frame-focus frame focus-frame | |
941 This function redirects focus from @var{frame} to @var{focus-frame}. | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
942 This means that @var{focus-frame} will receive subsequent keystrokes and |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
943 events intended for @var{frame}. After such an event, the value of |
6547 | 944 @code{last-event-frame} will be @var{focus-frame}. Also, switch-frame |
945 events specifying @var{frame} will instead select @var{focus-frame}. | |
946 | |
947 If @var{focus-frame} is @code{nil}, that cancels any existing | |
948 redirection for @var{frame}, which therefore once again receives its own | |
949 events. | |
950 | |
951 One use of focus redirection is for frames that don't have minibuffers. | |
952 These frames use minibuffers on other frames. Activating a minibuffer | |
953 on another frame redirects focus to that frame. This puts the focus on | |
954 the minibuffer's frame, where it belongs, even though the mouse remains | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
955 in the frame that activated the minibuffer. |
6547 | 956 |
957 Selecting a frame can also change focus redirections. Selecting frame | |
958 @code{bar}, when @code{foo} had been selected, changes any redirections | |
959 pointing to @code{foo} so that they point to @code{bar} instead. This | |
960 allows focus redirection to work properly when the user switches from | |
961 one frame to another using @code{select-window}. | |
962 | |
963 This means that a frame whose focus is redirected to itself is treated | |
964 differently from a frame whose focus is not redirected. | |
965 @code{select-frame} affects the former but not the latter. | |
966 | |
967 The redirection lasts until @code{redirect-frame-focus} is called to | |
968 change it. | |
969 @end defun | |
970 | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
971 @defopt focus-follows-mouse |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
972 This option is how you inform Emacs whether the window manager transfers |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
973 focus when the user moves the mouse. Non-@code{nil} says that it does. |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
974 When this is so, the command @code{other-frame} moves the mouse to a |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
975 position consistent with the new selected frame. |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
976 @end defopt |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
977 |
6547 | 978 @node Visibility of Frames |
979 @section Visibility of Frames | |
980 @cindex visible frame | |
981 @cindex invisible frame | |
982 @cindex iconified frame | |
983 @cindex frame visibility | |
984 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
985 A window frame may be @dfn{visible}, @dfn{invisible}, or |
12067 | 986 @dfn{iconified}. If it is visible, you can see its contents. If it is |
987 iconified, the frame's contents do not appear on the screen, but an icon | |
988 does. If the frame is invisible, it doesn't show on the screen, not | |
989 even as an icon. | |
990 | |
991 Visibility is meaningless for terminal frames, since only the selected | |
992 one is actually displayed in any case. | |
6547 | 993 |
994 @deffn Command make-frame-visible &optional frame | |
995 This function makes frame @var{frame} visible. If you omit @var{frame}, | |
996 it makes the selected frame visible. | |
997 @end deffn | |
998 | |
999 @deffn Command make-frame-invisible &optional frame | |
1000 This function makes frame @var{frame} invisible. If you omit | |
1001 @var{frame}, it makes the selected frame invisible. | |
1002 @end deffn | |
1003 | |
1004 @deffn Command iconify-frame &optional frame | |
1005 This function iconifies frame @var{frame}. If you omit @var{frame}, it | |
1006 iconifies the selected frame. | |
1007 @end deffn | |
1008 | |
1009 @defun frame-visible-p frame | |
1010 This returns the visibility status of frame @var{frame}. The value is | |
1011 @code{t} if @var{frame} is visible, @code{nil} if it is invisible, and | |
1012 @code{icon} if it is iconified. | |
1013 @end defun | |
1014 | |
1015 The visibility status of a frame is also available as a frame | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1016 parameter. You can read or change it as such. @xref{Window Frame |
6547 | 1017 Parameters}. |
1018 | |
12067 | 1019 The user can iconify and deiconify frames with the window manager. |
1020 This happens below the level at which Emacs can exert any control, but | |
1021 Emacs does provide events that you can use to keep track of such | |
1022 changes. @xref{Misc Events}. | |
1023 | |
6547 | 1024 @node Raising and Lowering |
1025 @section Raising and Lowering Frames | |
1026 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1027 Most window systems use a desktop metaphor. Part of this metaphor is |
6547 | 1028 the idea that windows are stacked in a notional third dimension |
1029 perpendicular to the screen surface, and thus ordered from ``highest'' | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1030 to ``lowest''. Where two windows overlap, the one higher up covers |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1031 the one underneath. Even a window at the bottom of the stack can be |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1032 seen if no other window overlaps it. |
6547 | 1033 |
1034 @cindex raising a frame | |
1035 @cindex lowering a frame | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1036 A window's place in this ordering is not fixed; in fact, users tend |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1037 to change the order frequently. @dfn{Raising} a window means moving |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1038 it ``up'', to the top of the stack. @dfn{Lowering} a window means |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1039 moving it to the bottom of the stack. This motion is in the notional |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1040 third dimension only, and does not change the position of the window |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1041 on the screen. |
6547 | 1042 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1043 You can raise and lower Emacs frame Windows with these functions: |
6547 | 1044 |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1045 @deffn Command raise-frame &optional frame |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1046 This function raises frame @var{frame} (default, the selected frame). |
12067 | 1047 @end deffn |
6547 | 1048 |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1049 @deffn Command lower-frame &optional frame |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1050 This function lowers frame @var{frame} (default, the selected frame). |
12067 | 1051 @end deffn |
6547 | 1052 |
1053 @defopt minibuffer-auto-raise | |
1054 If this is non-@code{nil}, activation of the minibuffer raises the frame | |
1055 that the minibuffer window is in. | |
1056 @end defopt | |
1057 | |
1058 You can also enable auto-raise (raising automatically when a frame is | |
1059 selected) or auto-lower (lowering automatically when it is deselected) | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1060 for any frame using frame parameters. @xref{Window Frame Parameters}. |
6547 | 1061 |
1062 @node Frame Configurations | |
1063 @section Frame Configurations | |
1064 @cindex frame configuration | |
1065 | |
1066 A @dfn{frame configuration} records the current arrangement of frames, | |
1067 all their properties, and the window configuration of each one. | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1068 (@xref{Window Configurations}.) |
6547 | 1069 |
1070 @defun current-frame-configuration | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
1071 This function returns a frame configuration list that describes |
6547 | 1072 the current arrangement of frames and their contents. |
1073 @end defun | |
1074 | |
26388 | 1075 @defun set-frame-configuration configuration &optional nodelete |
6547 | 1076 This function restores the state of frames described in |
1077 @var{configuration}. | |
26388 | 1078 |
1079 Ordinarily, this function deletes all existing frames not listed in | |
1080 @var{configuration}. But if @var{nodelete} is non-@code{nil}, the | |
1081 unwanted frames are iconified instead. | |
6547 | 1082 @end defun |
1083 | |
1084 @node Mouse Tracking | |
1085 @section Mouse Tracking | |
1086 @cindex mouse tracking | |
1087 @cindex tracking the mouse | |
1088 | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
1089 Sometimes it is useful to @dfn{track} the mouse, which means to display |
6547 | 1090 something to indicate where the mouse is and move the indicator as the |
1091 mouse moves. For efficient mouse tracking, you need a way to wait until | |
1092 the mouse actually moves. | |
1093 | |
1094 The convenient way to track the mouse is to ask for events to represent | |
1095 mouse motion. Then you can wait for motion by waiting for an event. In | |
1096 addition, you can easily handle any other sorts of events that may | |
1097 occur. That is useful, because normally you don't want to track the | |
1098 mouse forever---only until some other event, such as the release of a | |
1099 button. | |
1100 | |
1101 @defspec track-mouse body@dots{} | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1102 This special form executes @var{body}, with generation of mouse motion |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1103 events enabled. Typically @var{body} would use @code{read-event} to |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1104 read the motion events and modify the display accordingly. @xref{Motion |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1105 Events}, for the format of mouse motion events. |
6547 | 1106 |
1107 The value of @code{track-mouse} is that of the last form in @var{body}. | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1108 You should design @var{body} to return when it sees the up-event that |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1109 indicates the release of the button, or whatever kind of event means |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1110 it is time to stop tracking. |
6547 | 1111 @end defspec |
1112 | |
1113 The usual purpose of tracking mouse motion is to indicate on the screen | |
1114 the consequences of pushing or releasing a button at the current | |
1115 position. | |
1116 | |
12098 | 1117 In many cases, you can avoid the need to track the mouse by using |
1118 the @code{mouse-face} text property (@pxref{Special Properties}). | |
1119 That works at a much lower level and runs more smoothly than | |
1120 Lisp-level mouse tracking. | |
1121 | |
6547 | 1122 @ignore |
1123 @c These are not implemented yet. | |
1124 | |
1125 These functions change the screen appearance instantaneously. The | |
1126 effect is transient, only until the next ordinary Emacs redisplay. That | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1127 is OK for mouse tracking, since it doesn't make sense for mouse tracking |
6547 | 1128 to change the text, and the body of @code{track-mouse} normally reads |
1129 the events itself and does not do redisplay. | |
1130 | |
1131 @defun x-contour-region window beg end | |
1132 This function draws lines to make a box around the text from @var{beg} | |
1133 to @var{end}, in window @var{window}. | |
1134 @end defun | |
1135 | |
1136 @defun x-uncontour-region window beg end | |
1137 This function erases the lines that would make a box around the text | |
1138 from @var{beg} to @var{end}, in window @var{window}. Use it to remove | |
1139 a contour that you previously made by calling @code{x-contour-region}. | |
1140 @end defun | |
1141 | |
1142 @defun x-draw-rectangle frame left top right bottom | |
1143 This function draws a hollow rectangle on frame @var{frame} with the | |
1144 specified edge coordinates, all measured in pixels from the inside top | |
1145 left corner. It uses the cursor color, the one used for indicating the | |
1146 location of point. | |
1147 @end defun | |
1148 | |
1149 @defun x-erase-rectangle frame left top right bottom | |
1150 This function erases a hollow rectangle on frame @var{frame} with the | |
1151 specified edge coordinates, all measured in pixels from the inside top | |
1152 left corner. Erasure means redrawing the text and background that | |
1153 normally belong in the specified rectangle. | |
1154 @end defun | |
1155 @end ignore | |
1156 | |
1157 @node Mouse Position | |
1158 @section Mouse Position | |
1159 @cindex mouse position | |
1160 @cindex position of mouse | |
1161 | |
1162 The functions @code{mouse-position} and @code{set-mouse-position} | |
1163 give access to the current position of the mouse. | |
1164 | |
1165 @defun mouse-position | |
1166 This function returns a description of the position of the mouse. The | |
1167 value looks like @code{(@var{frame} @var{x} . @var{y})}, where @var{x} | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1168 and @var{y} are integers giving the position in characters relative to |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1169 the top left corner of the inside of @var{frame}. |
6547 | 1170 @end defun |
1171 | |
39197
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
1172 @defvar mouse-position-function |
39221
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1173 If non-@code{nil}, the value of this variable is a function for |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1174 @code{mouse-position} to call. @code{mouse-position} calls this |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1175 function just before returning, with its normal return value as the |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1176 sole argument, and it returns whatever this function returns to it. |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1177 |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1178 This abnormal hook exists for the benefit of packages like |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1179 @file{xt-mouse.el} that need to do mouse handling at the Lisp level. |
39197
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
1180 @end defvar |
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
1181 |
6547 | 1182 @defun set-mouse-position frame x y |
1183 This function @dfn{warps the mouse} to position @var{x}, @var{y} in | |
1184 frame @var{frame}. The arguments @var{x} and @var{y} are integers, | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1185 giving the position in characters relative to the top left corner of the |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1186 inside of @var{frame}. If @var{frame} is not visible, this function |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1187 does nothing. The return value is not significant. |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1188 @end defun |
6547 | 1189 |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1190 @defun mouse-pixel-position |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1191 This function is like @code{mouse-position} except that it returns |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1192 coordinates in units of pixels rather than units of characters. |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1193 @end defun |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1194 |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1195 @defun set-mouse-pixel-position frame x y |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1196 This function warps the mouse like @code{set-mouse-position} except that |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1197 @var{x} and @var{y} are in units of pixels rather than units of |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1198 characters. These coordinates are not required to be within the frame. |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1199 |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1200 If @var{frame} is not visible, this function does nothing. The return |
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1201 value is not significant. |
6547 | 1202 @end defun |
1203 | |
1204 @need 3000 | |
1205 | |
1206 @node Pop-Up Menus | |
1207 @section Pop-Up Menus | |
1208 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1209 When using a window system, a Lisp program can pop up a menu so that |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1210 the user can choose an alternative with the mouse. |
12067 | 1211 |
6547 | 1212 @defun x-popup-menu position menu |
1213 This function displays a pop-up menu and returns an indication of | |
1214 what selection the user makes. | |
1215 | |
1216 The argument @var{position} specifies where on the screen to put the | |
1217 menu. It can be either a mouse button event (which says to put the menu | |
1218 where the user actuated the button) or a list of this form: | |
1219 | |
1220 @example | |
1221 ((@var{xoffset} @var{yoffset}) @var{window}) | |
1222 @end example | |
1223 | |
1224 @noindent | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1225 where @var{xoffset} and @var{yoffset} are coordinates, measured in |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1226 pixels, counting from the top left corner of @var{window}'s frame. |
6547 | 1227 |
1228 If @var{position} is @code{t}, it means to use the current mouse | |
1229 position. If @var{position} is @code{nil}, it means to precompute the | |
1230 key binding equivalents for the keymaps specified in @var{menu}, | |
1231 without actually displaying or popping up the menu. | |
1232 | |
1233 The argument @var{menu} says what to display in the menu. It can be a | |
1234 keymap or a list of keymaps (@pxref{Menu Keymaps}). Alternatively, it | |
1235 can have the following form: | |
1236 | |
1237 @example | |
1238 (@var{title} @var{pane1} @var{pane2}...) | |
1239 @end example | |
1240 | |
1241 @noindent | |
1242 where each pane is a list of form | |
1243 | |
1244 @example | |
12098 | 1245 (@var{title} (@var{line} . @var{item})...) |
6547 | 1246 @end example |
1247 | |
1248 Each @var{line} should be a string, and each @var{item} should be the | |
1249 value to return if that @var{line} is chosen. | |
1250 @end defun | |
1251 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1252 @strong{Usage note:} Don't use @code{x-popup-menu} to display a menu |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1253 if you could do the job with a prefix key defined with a menu keymap. |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1254 If you use a menu keymap to implement a menu, @kbd{C-h c} and @kbd{C-h |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1255 a} can see the individual items in that menu and provide help for them. |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1256 If instead you implement the menu by defining a command that calls |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1257 @code{x-popup-menu}, the help facilities cannot know what happens inside |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1258 that command, so they cannot give any help for the menu's items. |
14200
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1259 |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1260 The menu bar mechanism, which lets you switch between submenus by |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1261 moving the mouse, cannot look within the definition of a command to see |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1262 that it calls @code{x-popup-menu}. Therefore, if you try to implement a |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1263 submenu using @code{x-popup-menu}, it cannot work with the menu bar in |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1264 an integrated fashion. This is why all menu bar submenus are |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1265 implemented with menu keymaps within the parent menu, and never with |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1266 @code{x-popup-menu}. @xref{Menu Bar}, |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1267 |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1268 If you want a menu bar submenu to have contents that vary, you should |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1269 still use a menu keymap to implement it. To make the contents vary, add |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1270 a hook function to @code{menu-bar-update-hook} to update the contents of |
5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
Richard M. Stallman <rms@gnu.org>
parents:
13155
diff
changeset
|
1271 the menu keymap as necessary. |
6547 | 1272 |
1273 @node Dialog Boxes | |
1274 @section Dialog Boxes | |
1275 @cindex dialog boxes | |
1276 | |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1277 A dialog box is a variant of a pop-up menu---it looks a little |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1278 different, it always appears in the center of a frame, and it has just |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1279 one level and one pane. The main use of dialog boxes is for asking |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1280 questions that the user can answer with ``yes'', ``no'', and a few other |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1281 alternatives. The functions @code{y-or-n-p} and @code{yes-or-no-p} use |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1282 dialog boxes instead of the keyboard, when called from commands invoked |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1283 by mouse clicks. |
6547 | 1284 |
1285 @defun x-popup-dialog position contents | |
1286 This function displays a pop-up dialog box and returns an indication of | |
1287 what selection the user makes. The argument @var{contents} specifies | |
1288 the alternatives to offer; it has this format: | |
1289 | |
1290 @example | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1291 (@var{title} (@var{string} . @var{value})@dots{}) |
6547 | 1292 @end example |
1293 | |
1294 @noindent | |
1295 which looks like the list that specifies a single pane for | |
1296 @code{x-popup-menu}. | |
1297 | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1298 The return value is @var{value} from the chosen alternative. |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1299 |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1300 An element of the list may be just a string instead of a cons cell |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1301 @code{(@var{string} . @var{value})}. That makes a box that cannot |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1302 be selected. |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1303 |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1304 If @code{nil} appears in the list, it separates the left-hand items from |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1305 the right-hand items; items that precede the @code{nil} appear on the |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1306 left, and items that follow the @code{nil} appear on the right. If you |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1307 don't include a @code{nil} in the list, then approximately half the |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1308 items appear on each side. |
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1309 |
6547 | 1310 Dialog boxes always appear in the center of a frame; the argument |
1311 @var{position} specifies which frame. The possible values are as in | |
1312 @code{x-popup-menu}, but the precise coordinates don't matter; only the | |
1313 frame matters. | |
7174
0313f520a4d9
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6547
diff
changeset
|
1314 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1315 In some configurations, Emacs cannot display a real dialog box; so |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1316 instead it displays the same items in a pop-up menu in the center of the |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1317 frame. |
6547 | 1318 @end defun |
1319 | |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1320 @node Pointer Shapes |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1321 @section Pointer Shapes |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1322 @cindex pointer shape |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1323 @cindex mouse pointer shape |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1324 |
12067 | 1325 These variables specify which shape to use for the mouse pointer in |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1326 various situations, when using the X Window System: |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1327 |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1328 @table @code |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1329 @item x-pointer-shape |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1330 @vindex x-pointer-shape |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1331 This variable specifies the pointer shape to use ordinarily in the Emacs |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1332 frame. |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1333 |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1334 @item x-sensitive-text-pointer-shape |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1335 @vindex x-sensitive-text-pointer-shape |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1336 This variable specifies the pointer shape to use when the mouse |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1337 is over mouse-sensitive text. |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1338 @end table |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1339 |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1340 These variables affect newly created frames. They do not normally |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1341 affect existing frames; however, if you set the mouse color of a frame, |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1342 that also updates its pointer shapes based on the current values of |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1343 these variables. @xref{Window Frame Parameters}. |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1344 |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1345 The values you can use, to specify either of these pointer shapes, are |
15061 | 1346 defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos |
7684
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1347 @key{RET} x-pointer @key{RET}} to see a list of them. |
ec7caebc4a1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
7174
diff
changeset
|
1348 |
21682
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1349 @node Window System Selections |
90da2489c498
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21007
diff
changeset
|
1350 @section Window System Selections |
35476 | 1351 @cindex selection (for window systems) |
6547 | 1352 |
1353 The X server records a set of @dfn{selections} which permit transfer of | |
1354 data between application programs. The various selections are | |
1355 distinguished by @dfn{selection types}, represented in Emacs by | |
1356 symbols. X clients including Emacs can read or set the selection for | |
1357 any given type. | |
1358 | |
1359 @defun x-set-selection type data | |
1360 This function sets a ``selection'' in the X server. It takes two | |
1361 arguments: a selection type @var{type}, and the value to assign to it, | |
1362 @var{data}. If @var{data} is @code{nil}, it means to clear out the | |
1363 selection. Otherwise, @var{data} may be a string, a symbol, an integer | |
1364 (or a cons of two integers or list of two integers), an overlay, or a | |
1365 cons of two markers pointing to the same buffer. An overlay or a pair | |
1366 of markers stands for text in the overlay or between the markers. | |
1367 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1368 The argument @var{data} may also be a vector of valid non-vector |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1369 selection values. |
6547 | 1370 |
1371 Each possible @var{type} has its own selection value, which changes | |
1372 independently. The usual values of @var{type} are @code{PRIMARY} and | |
1373 @code{SECONDARY}; these are symbols with upper-case names, in accord | |
1374 with X Window System conventions. The default is @code{PRIMARY}. | |
1375 @end defun | |
1376 | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
1377 @defun x-get-selection &optional type data-type |
6547 | 1378 This function accesses selections set up by Emacs or by other X |
1379 clients. It takes two optional arguments, @var{type} and | |
1380 @var{data-type}. The default for @var{type}, the selection type, is | |
1381 @code{PRIMARY}. | |
1382 | |
1383 The @var{data-type} argument specifies the form of data conversion to | |
1384 use, to convert the raw data obtained from another X client into Lisp | |
1385 data. Meaningful values include @code{TEXT}, @code{STRING}, | |
1386 @code{TARGETS}, @code{LENGTH}, @code{DELETE}, @code{FILE_NAME}, | |
1387 @code{CHARACTER_POSITION}, @code{LINE_NUMBER}, @code{COLUMN_NUMBER}, | |
1388 @code{OWNER_OS}, @code{HOST_NAME}, @code{USER}, @code{CLASS}, | |
1389 @code{NAME}, @code{ATOM}, and @code{INTEGER}. (These are symbols with | |
1390 upper-case names in accord with X conventions.) The default for | |
1391 @var{data-type} is @code{STRING}. | |
1392 @end defun | |
1393 | |
1394 @cindex cut buffer | |
1395 The X server also has a set of numbered @dfn{cut buffers} which can | |
1396 store text or other data being moved between applications. Cut buffers | |
1397 are considered obsolete, but Emacs supports them for the sake of X | |
1398 clients that still use them. | |
1399 | |
1400 @defun x-get-cut-buffer n | |
1401 This function returns the contents of cut buffer number @var{n}. | |
1402 @end defun | |
1403 | |
26388 | 1404 @defun x-set-cut-buffer string &optional push |
6547 | 1405 This function stores @var{string} into the first cut buffer (cut buffer |
26388 | 1406 0). If @var{push} is @code{nil}, only the first cut buffer is changed. |
1407 If @var{push} is non-@code{nil}, that says to move the values down | |
1408 through the series of cut buffers, much like the way successive kills in | |
1409 Emacs move down the kill ring. In other words, the previous value of | |
1410 the first cut buffer moves into the second cut buffer, and the second to | |
1411 the third, and so on through all eight cut buffers. | |
6547 | 1412 @end defun |
1413 | |
22742
39fe58403429
Add selection-coding-system.
Richard M. Stallman <rms@gnu.org>
parents:
22274
diff
changeset
|
1414 @defvar selection-coding-system |
39fe58403429
Add selection-coding-system.
Richard M. Stallman <rms@gnu.org>
parents:
22274
diff
changeset
|
1415 This variable specifies the coding system to use when reading and |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1416 writing selections, the clipboard, or a cut buffer. @xref{Coding |
26388 | 1417 Systems}. The default is @code{compound-text}, which converts to |
1418 the text representation that X11 normally uses. | |
22742
39fe58403429
Add selection-coding-system.
Richard M. Stallman <rms@gnu.org>
parents:
22274
diff
changeset
|
1419 @end defvar |
39fe58403429
Add selection-coding-system.
Richard M. Stallman <rms@gnu.org>
parents:
22274
diff
changeset
|
1420 |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1421 @cindex clipboard support (for MS-Windows) |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1422 When Emacs runs on MS-Windows, it does not implement X selections in |
36348
3fd0e91fef4e
(Window System Selections): Remove doubled `it'.
Gerd Moellmann <gerd@gnu.org>
parents:
35476
diff
changeset
|
1423 general, but it does support the clipboard. @code{x-get-selection} |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1424 and @code{x-set-selection} on MS-Windows support the text data type |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1425 only; if the clipboard holds other types of data, Emacs treats the |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1426 clipboard as empty. |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1427 |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1428 @defopt x-select-enable-clipboard |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1429 If this is non-@code{nil}, the Emacs yank functions consult the |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1430 clipboard before the primary selection, and the kill functions store in |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1431 the clipboard as well as the primary selection. Otherwise they do not |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1432 access the clipboard at all. The default is @code{nil} on most systems, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1433 but @code{t} on MS-Windows. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1434 @end defopt |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1435 |
12098 | 1436 @node Color Names |
1437 @section Color Names | |
6547 | 1438 |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1439 These functions provide a way to determine which color names are |
39402
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
1440 valid, and what they look like. In some cases, the value depends on the |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
1441 @dfn{selected frame}, as described below; see @ref{Input Focus}, for the |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
1442 meaning of the term ``selected frame''. |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1443 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1444 @defun color-defined-p color &optional frame |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1445 @tindex color-defined-p |
8712 | 1446 This function reports whether a color name is meaningful. It returns |
12676
d97688032b10
multiple-frames is not terminal-local.
Richard M. Stallman <rms@gnu.org>
parents:
12388
diff
changeset
|
1447 @code{t} if so; otherwise, @code{nil}. The argument @var{frame} says |
d97688032b10
multiple-frames is not terminal-local.
Richard M. Stallman <rms@gnu.org>
parents:
12388
diff
changeset
|
1448 which frame's display to ask about; if @var{frame} is omitted or |
d97688032b10
multiple-frames is not terminal-local.
Richard M. Stallman <rms@gnu.org>
parents:
12388
diff
changeset
|
1449 @code{nil}, the selected frame is used. |
8712 | 1450 |
1451 Note that this does not tell you whether the display you are using | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1452 really supports that color. When using X, you can ask for any defined |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1453 color on any kind of display, and you will get some result---typically, |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1454 the closest it can do. To determine whether a frame can really display |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1455 a certain color, use @code{color-supported-p} (see below). |
8712 | 1456 |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1457 @findex x-color-defined-p |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1458 This function used to be called @code{x-color-defined-p}, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1459 and that name is still supported as an alias. |
8712 | 1460 @end defun |
6547 | 1461 |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1462 @defun defined-colors &optional frame |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1463 @tindex defined-colors |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1464 This function returns a list of the color names that are defined |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1465 and supported on frame @var{frame} (default, the selected frame). |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1466 |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1467 @findex x-defined-colors |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1468 This function used to be called @code{x-defined-colors}, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1469 and that name is still supported as an alias. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1470 @end defun |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1471 |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1472 @defun color-supported-p color &optional frame background-p |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1473 @tindex color-supported-p |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1474 This returns @code{t} if @var{frame} can really display the color |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1475 @var{color} (or at least something close to it). If @var{frame} is |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1476 omitted or @code{nil}, the question applies to the selected frame. |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1477 |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1478 Some terminals support a different set of colors for foreground and |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1479 background. If @var{background-p} is non-@code{nil}, that means you are |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1480 asking whether @var{color} can be used as a background; otherwise you |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1481 are asking whether it can be used as a foreground. |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1482 |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1483 The argument @var{color} must be a valid color name. |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1484 @end defun |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1485 |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1486 @defun color-gray-p color &optional frame |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1487 @tindex color-gray-p |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1488 This returns @code{t} if @var{color} is a shade of gray, as defined on |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1489 @var{frame}'s display. If @var{frame} is omitted or @code{nil}, the |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1490 question applies to the selected frame. The argument @var{color} must |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1491 be a valid color name. |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1492 @end defun |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1493 |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1494 @defun color-values color &optional frame |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1495 @tindex color-values |
8712 | 1496 This function returns a value that describes what @var{color} should |
1497 ideally look like. If @var{color} is defined, the value is a list of | |
1498 three integers, which give the amount of red, the amount of green, and | |
1499 the amount of blue. Each integer ranges in principle from 0 to 65535, | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1500 but in practice no value seems to be above 65280. This kind |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1501 of three-element list is called an @dfn{rgb value}. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1502 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1503 If @var{color} is not defined, the value is @code{nil}. |
8712 | 1504 |
1505 @example | |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1506 (color-values "black") |
8712 | 1507 @result{} (0 0 0) |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1508 (color-values "white") |
8712 | 1509 @result{} (65280 65280 65280) |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1510 (color-values "red") |
8712 | 1511 @result{} (65280 0 0) |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1512 (color-values "pink") |
8712 | 1513 @result{} (65280 49152 51968) |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1514 (color-values "hungry") |
8712 | 1515 @result{} nil |
1516 @end example | |
12676
d97688032b10
multiple-frames is not terminal-local.
Richard M. Stallman <rms@gnu.org>
parents:
12388
diff
changeset
|
1517 |
d97688032b10
multiple-frames is not terminal-local.
Richard M. Stallman <rms@gnu.org>
parents:
12388
diff
changeset
|
1518 The color values are returned for @var{frame}'s display. If @var{frame} |
22252
40089afa2b1d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
22138
diff
changeset
|
1519 is omitted or @code{nil}, the information is returned for the selected |
12676
d97688032b10
multiple-frames is not terminal-local.
Richard M. Stallman <rms@gnu.org>
parents:
12388
diff
changeset
|
1520 frame's display. |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1521 |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1522 @findex x-color-values |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1523 This function used to be called @code{x-color-values}, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1524 and that name is still supported as an alias. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1525 @end defun |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1526 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1527 @node Text Terminal Colors |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1528 @section Text Terminal Colors |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1529 @cindex colors on text-only terminals |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1530 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1531 Emacs can display color on text-only terminals, starting with version |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1532 21. These terminals support only a small number of colors, and the |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1533 computer uses small integers to select colors on the terminal. This |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1534 means that the computer cannot reliably tell what the selected color |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1535 looks like; instead, you have to inform your application which small |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1536 integers correspond to which colors. However, Emacs does know the |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1537 standard set of colors and will try to use them automatically. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1538 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1539 @cindex rgb value |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1540 Several of these functions use or return @dfn{rgb values}. An rgb |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1541 value is a list of three integers, which give the amount of red, the |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1542 amount of green, and the amount of blue. Each integer ranges in |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1543 principle from 0 to 65535, but in practice the largest value used is |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1544 65280. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1545 |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1546 These functions accept a display (either a frame or the name of a |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1547 terminal) as an optional argument. We hope in the future to make Emacs |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1548 support more than one text-only terminal at one time; then this argument |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1549 will specify which terminal to operate on (the default being the |
39402
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
1550 selected frame's terminal; @pxref{Input Focus}). At present, though, |
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
1551 the @var{display} argument has no effect. |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1552 |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1553 @defun tty-color-define name number &optional rgb display |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1554 @tindex tty-color-define |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1555 This function associates the color name @var{name} with |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1556 color number @var{number} on the terminal. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1557 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1558 The optional argument @var{rgb}, if specified, is an rgb value; it says |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1559 what the color actually looks like. If you do not specify @var{rgb}, |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1560 then this color cannot be used by @code{tty-color-approximate} to |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1561 approximate other colors, because Emacs does not know what it looks |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1562 like. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1563 @end defun |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1564 |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1565 @defun tty-color-clear &optional display |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1566 @tindex tty-color-clear |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1567 This function clears the table of defined colors for a text-only terminal. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1568 @end defun |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1569 |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1570 @defun tty-color-alist &optional display |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1571 @tindex tty-color-alist |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1572 This function returns an alist recording the known colors supported by a |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1573 text-only terminal. |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1574 |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1575 Each element has the form @code{(@var{name} @var{number} . @var{rgb})} |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1576 or @code{(@var{name} @var{number})}. Here, @var{name} is the color |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1577 name, @var{number} is the number used to specify it to the terminal. |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1578 If present, @var{rgb} is an rgb value that says what the color |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1579 actually looks like. |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1580 @end defun |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1581 |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1582 @defun tty-color-approximate rgb &optional display |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1583 @tindex tty-color-approximate |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1584 This function finds the closest color, among the known colors supported |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1585 for @var{display}, to that described by the rgb value @var{rgb}. |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1586 @end defun |
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1587 |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1588 @defun tty-color-translate color &optional display |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1589 @tindex tty-color-translate |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1590 This function finds the closest color to @var{color} among the known |
27374
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1591 colors supported for @var{display}. If the name @var{color} is not |
0f5edee5242b
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27189
diff
changeset
|
1592 defined, the value is @code{nil}. |
25751
467b88fab665
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
24951
diff
changeset
|
1593 |
27093
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1594 @var{color} can be an X-style @code{"#@var{xxxyyyzzz}"} specification |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1595 instead of an actual name. The format |
4b1a67a46d8c
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
26388
diff
changeset
|
1596 @code{"RGB:@var{xx}/@var{yy}/@var{zz}"} is also supported. |
6547 | 1597 @end defun |
1598 | |
1599 @node Resources | |
1600 @section X Resources | |
1601 | |
12098 | 1602 @defun x-get-resource attribute class &optional component subclass |
6547 | 1603 The function @code{x-get-resource} retrieves a resource value from the X |
1604 Windows defaults database. | |
1605 | |
1606 Resources are indexed by a combination of a @dfn{key} and a @dfn{class}. | |
1607 This function searches using a key of the form | |
8427
bc548090f760
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
8110
diff
changeset
|
1608 @samp{@var{instance}.@var{attribute}} (where @var{instance} is the name |
12098 | 1609 under which Emacs was invoked), and using @samp{Emacs.@var{class}} as |
1610 the class. | |
6547 | 1611 |
1612 The optional arguments @var{component} and @var{subclass} add to the key | |
1613 and the class, respectively. You must specify both of them or neither. | |
1614 If you specify them, the key is | |
1615 @samp{@var{instance}.@var{component}.@var{attribute}}, and the class is | |
12098 | 1616 @samp{Emacs.@var{class}.@var{subclass}}. |
6547 | 1617 @end defun |
1618 | |
21007
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1619 @defvar x-resource-class |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1620 This variable specifies the application name that @code{x-get-resource} |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1621 should look up. The default value is @code{"Emacs"}. You can examine X |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1622 resources for application names other than ``Emacs'' by binding this |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1623 variable to some other string, around a call to @code{x-get-resource}. |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1624 @end defvar |
66d807bdc5b4
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
16528
diff
changeset
|
1625 |
12098 | 1626 @xref{Resources X,, X Resources, emacs, The GNU Emacs Manual}. |
6547 | 1627 |
27447
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1628 @node Display Feature Testing |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1629 @section Display Feature Testing |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1630 @cindex display feature testing |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1631 |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1632 The functions in this section describe the basic capabilities of a |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1633 particular display. Lisp programs can use them to adapt their behavior |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1634 to what the display can do. For example, a program that ordinarly uses |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1635 a popup menu could use the minibuffer if popup menus are not supported. |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1636 |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1637 The optional argument @var{display} in these functions specifies which |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1638 display to ask the question about. It can be a display name, a frame |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1639 (which designates the display that frame is on), or @code{nil} (which |
39402
3a102bf6010f
(Input Focus): Clarify which frame is _the_ selected
Eli Zaretskii <eliz@gnu.org>
parents:
39221
diff
changeset
|
1640 refers to the selected frame's display, @pxref{Input Focus}). |
27447
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1641 |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1642 @xref{Color Names}, @ref{Text Terminal Colors}, for other functions to |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1643 obtain information about displays. |
6547 | 1644 |
27447
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1645 @defun display-popup-menus-p &optional display |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1646 @tindex display-popup-menus-p |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1647 This function returns @code{t} if popup menus are supported on |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1648 @var{display}, @code{nil} if not. Support for popup menus requires that |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1649 the mouse be available, since the user cannot choose menu items without |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1650 a mouse. |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1651 @end defun |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1652 |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1653 @defun display-graphic-p &optional display |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1654 @tindex display-graphic-p |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1655 @cindex frames, more than one on display |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1656 @cindex fonts, more than one on display |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1657 This function returns @code{t} if @var{display} is a graphic display |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1658 capable of displaying several frames and several different fonts at |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1659 once. This is true for displays that use a window system such as X, and |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1660 false for text-only terminals. |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1661 @end defun |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1662 |
27654
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1663 @defun display-mouse-p &optional display |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1664 @tindex display-mouse-p |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1665 @cindex mouse, availability |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1666 This function returns @code{t} if @var{display} has a mouse available, |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1667 @code{nil} if not. |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1668 @end defun |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1669 |
27532
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1670 @defun display-color-p &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1671 @tindex display-color-p |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1672 @findex x-display-color-p |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1673 This function returns @code{t} if the screen is a color screen. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1674 It used to be called @code{x-display-color-p}, and that name |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1675 is still supported as an alias. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1676 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1677 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1678 @defun display-grayscale-p &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1679 @tindex display-grayscale-p |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1680 This function returns @code{t} if the screen can display shades of gray. |
27654
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1681 (All color displays can do this.) |
27532
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1682 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1683 |
27447
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1684 @defun display-selections-p &optional display |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1685 @tindex display-selections-p |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1686 This function returns @code{t} if @var{display} supports selections. |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1687 Windowed displays normally support selections, but they may also be |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1688 supported in some other cases. |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1689 @end defun |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1690 |
39197
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
1691 @defun display-images-p &optional display |
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
1692 This function returns @code{t} if @var{display} can display images. |
39221
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1693 Windowed displays ought in principle to handle images, but some |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1694 systems lack the support for that. On a display that does not support |
68b26e98aef6
Clarify recent changes.
Richard M. Stallman <rms@gnu.org>
parents:
39197
diff
changeset
|
1695 images, Emacs cannot display a tool bar. |
39197
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
1696 @end defun |
f56fa34012c0
(Mouse Position): Document mouse-position-function.
Eli Zaretskii <eliz@gnu.org>
parents:
36348
diff
changeset
|
1697 |
27532
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1698 @defun display-screens &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1699 @tindex display-screens |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1700 This function returns the number of screens associated with the display. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1701 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1702 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1703 @defun display-pixel-height &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1704 @tindex display-pixel-height |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1705 This function returns the height of the screen in pixels. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1706 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1707 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1708 @defun display-mm-height &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1709 @tindex display-mm-height |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1710 This function returns the height of the screen in millimeters, |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1711 or @code{nil} if Emacs cannot get that information. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1712 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1713 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1714 @defun display-pixel-width &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1715 @tindex display-pixel-width |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1716 This function returns the width of the screen in pixels. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1717 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1718 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1719 @defun display-mm-width &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1720 @tindex display-mm-width |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1721 This function returns the width of the screen in millimeters, |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1722 or @code{nil} if Emacs cannot get that information. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1723 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1724 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1725 @defun display-backing-store &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1726 @tindex display-backing-store |
27654
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1727 This function returns the backing store capability of the display. |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1728 Backing store means recording the pixels of windows (and parts of |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1729 windows) that are not exposed, so that when exposed they can be |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1730 displayed very quickly. |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1731 |
27532
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1732 Values can be the symbols @code{always}, @code{when-mapped}, or |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1733 @code{not-useful}. The function can also return @code{nil} |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1734 when the question is inapplicable to a certain kind of display. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1735 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1736 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1737 @defun display-save-under &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1738 @tindex display-save-under |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1739 This function returns non-@code{nil} if the display supports the |
27654
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1740 SaveUnder feature. That feature is used by pop-up windows |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1741 to save the pixels they obscure, so that they can pop down |
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1742 quickly. |
27532
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1743 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1744 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1745 @defun display-planes &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1746 @tindex display-planes |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1747 This function returns the number of planes the display supports. |
27654
cabb1b4c4424
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27532
diff
changeset
|
1748 This is typically the number of bits per pixel. |
35037 | 1749 For a tty display, it is log to base two of the number of colours supported. |
27532
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1750 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1751 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1752 @defun display-visual-class &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1753 @tindex display-visual-class |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1754 This function returns the visual class for the screen. The value is one |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1755 of the symbols @code{static-gray}, @code{gray-scale}, |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1756 @code{static-color}, @code{pseudo-color}, @code{true-color}, and |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1757 @code{direct-color}. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1758 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1759 |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1760 @defun display-color-cells &optional display |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1761 @tindex display-color-cells |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1762 This function returns the number of color cells the screen supports. |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1763 @end defun |
ada257a7df9f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27447
diff
changeset
|
1764 |
27447
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1765 These functions obtain additional information specifically |
ef387684dc33
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
27374
diff
changeset
|
1766 about X displays. |
6547 | 1767 |
12067 | 1768 @defun x-server-version &optional display |
1769 This function returns the list of version numbers of the X server | |
1770 running the display. | |
6547 | 1771 @end defun |
1772 | |
12067 | 1773 @defun x-server-vendor &optional display |
1774 This function returns the vendor that provided the X server software. | |
6547 | 1775 @end defun |
1776 | |
1777 @ignore | |
1778 @defvar x-no-window-manager | |
22138
d4ac295a98b3
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
21682
diff
changeset
|
1779 This variable's value is @code{t} if no X window manager is in use. |
6547 | 1780 @end defvar |
1781 @end ignore | |
1782 | |
1783 @ignore | |
1784 @item | |
1785 The functions @code{x-pixel-width} and @code{x-pixel-height} return the | |
1786 width and height of an X Window frame, measured in pixels. | |
1787 @end ignore |