annotate doc/lispref/frames.texi @ 97366:d2c211c8ceda

(w32_list_system_processes, w32_system_process_attributes): Add prototypes. (Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname) (Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcutime) (Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs, Quser, Qgroup) (Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime): Add extern declarations.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 09 Aug 2008 17:53:30 +0000
parents 9592c50233ab
children 8be1f0e1f72d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1 @c -*-texinfo-*-
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2 @c This is part of the GNU Emacs Lisp Reference Manual.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
3 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
87649
107ccd98fa12 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 87453
diff changeset
4 @c 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
5 @c See the file elisp.texi for copying conditions.
84116
0ba80d073e27 (setfilename): Go up one more level to ../../info.
Glenn Morris <rgm@gnu.org>
parents: 84068
diff changeset
6 @setfilename ../../info/frames
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
7 @node Frames, Positions, Windows, Top
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
8 @chapter Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
9 @cindex frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
10
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
11 In Emacs editing, A @dfn{frame} is a screen object that contains one
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
12 or more Emacs windows. It's the kind of object that is called a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
13 ``window'' in the terminology of graphical environments; but we can't
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
14 call it a ``window'' here, because Emacs uses that word in a different
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
15 way.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
16
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
17 A frame initially contains a single main window and/or a minibuffer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
18 window; you can subdivide the main window vertically or horizontally
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
19 into smaller windows. In Emacs Lisp, a @dfn{frame object} is a Lisp
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
20 object that represents a frame on the screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
21
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
22 @cindex terminal frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
23 When Emacs runs on a text-only terminal, it starts with one
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
24 @dfn{terminal frame}. If you create additional ones, Emacs displays
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
25 one and only one at any given time---on the terminal screen, of course.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
26
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
27 @cindex window frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
28 When Emacs communicates directly with a supported window system, such
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
29 as X, it does not have a terminal frame; instead, it starts with
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
30 a single @dfn{window frame}, but you can create more, and Emacs can
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
31 display several such frames at once as is usual for window systems.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
32
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
33 @defun framep object
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
34 This predicate returns a non-@code{nil} value if @var{object} is a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
35 frame, and @code{nil} otherwise. For a frame, the value indicates which
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
36 kind of display the frame uses:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
37
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
38 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
39 @item x
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
40 The frame is displayed in an X window.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
41 @item t
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
42 A terminal frame on a character display.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
43 @item w32
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
44 The frame is displayed on MS-Windows 9X/NT.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
45 @item pc
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
46 The frame is displayed on an MS-DOS terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
47 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
48 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
49
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
50 @menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
51 * Creating Frames:: Creating additional frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
52 * Multiple Displays:: Creating frames on other displays.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
53 * Frame Parameters:: Controlling frame size, position, font, etc.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
54 * Frame Titles:: Automatic updating of frame titles.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
55 * Deleting Frames:: Frames last until explicitly deleted.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
56 * Finding All Frames:: How to examine all existing frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
57 * Frames and Windows:: A frame contains windows;
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
58 display of text always works through windows.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
59 * Minibuffers and Frames:: How a frame finds the minibuffer to use.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
60 * Input Focus:: Specifying the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
61 * Visibility of Frames:: Frames may be visible or invisible, or icons.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
62 * Raising and Lowering:: Raising a frame makes it hide other windows;
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
63 lowering it makes the others hide it.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
64 * Frame Configurations:: Saving the state of all frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
65 * Mouse Tracking:: Getting events that say when the mouse moves.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
66 * Mouse Position:: Asking where the mouse is, or moving it.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
67 * Pop-Up Menus:: Displaying a menu for the user to select from.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
68 * Dialog Boxes:: Displaying a box to ask yes or no.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
69 * Pointer Shape:: Specifying the shape of the mouse pointer.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
70 * Window System Selections:: Transferring text to and from other X clients.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
71 * Drag and Drop:: Internals of Drag-and-Drop implementation.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
72 * Color Names:: Getting the definitions of color names.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
73 * Text Terminal Colors:: Defining colors for text-only terminals.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
74 * Resources:: Getting resource values from the server.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
75 * Display Feature Testing:: Determining the features of a terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
76 @end menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
77
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
78 @xref{Display}, for information about the related topic of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
79 controlling Emacs redisplay.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
80
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
81 @node Creating Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
82 @section Creating Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
83
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
84 To create a new frame, call the function @code{make-frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
85
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
86 @defun make-frame &optional alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
87 This function creates and returns a new frame, displaying the current
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
88 buffer. If you are using a supported window system, it makes a window
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
89 frame; otherwise, it makes a terminal frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
90
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
91 The argument is an alist specifying frame parameters. Any parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
92 not mentioned in @var{alist} default according to the value of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
93 variable @code{default-frame-alist}; parameters not specified even there
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
94 default from the standard X resources or whatever is used instead on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
95 your system.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
96
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
97 The set of possible parameters depends in principle on what kind of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
98 window system Emacs uses to display its frames. @xref{Window Frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
99 Parameters}, for documentation of individual parameters you can specify.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
100
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
101 This function itself does not make the new frame the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
102 @xref{Input Focus}. The previously selected frame remains selected.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
103 However, the window system may select the new frame for its own reasons,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
104 for instance if the frame appears under the mouse pointer and your
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
105 setup is for focus to follow the pointer.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
106 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
107
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
108 @defvar before-make-frame-hook
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
109 A normal hook run by @code{make-frame} before it actually creates the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
110 frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
111 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
112
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
113 @defvar after-make-frame-functions
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
114 An abnormal hook run by @code{make-frame} after it creates the frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
115 Each function in @code{after-make-frame-functions} receives one argument, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
116 frame just created.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
117 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
118
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
119 @node Multiple Displays
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
120 @section Multiple Displays
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
121 @cindex multiple X displays
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
122 @cindex displays, multiple
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
123
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
124 A single Emacs can talk to more than one X display.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
125 Initially, Emacs uses just one display---the one chosen with the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
126 @code{DISPLAY} environment variable or with the @samp{--display} option
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
127 (@pxref{Initial Options,,, emacs, The GNU Emacs Manual}). To connect to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
128 another display, use the command @code{make-frame-on-display} or specify
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
129 the @code{display} frame parameter when you create the frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
130
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
131 Emacs treats each X server as a separate terminal, giving each one its
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
132 own selected frame and its own minibuffer windows. However, only one of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
133 those frames is ``@emph{the} selected frame'' at any given moment, see
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
134 @ref{Input Focus}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
135
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
136 A few Lisp variables are @dfn{terminal-local}; that is, they have a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
137 separate binding for each terminal. The binding in effect at any time
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
138 is the one for the terminal that the currently selected frame belongs
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
139 to. These variables include @code{default-minibuffer-frame},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
140 @code{defining-kbd-macro}, @code{last-kbd-macro}, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
141 @code{system-key-alist}. They are always terminal-local, and can never
85688
b210bba3f477 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85114
diff changeset
142 be buffer-local (@pxref{Buffer-Local Variables}).
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
143
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
144 A single X server can handle more than one screen. A display name
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
145 @samp{@var{host}:@var{server}.@var{screen}} has three parts; the last
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
146 part specifies the screen number for a given server. When you use two
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
147 screens belonging to one server, Emacs knows by the similarity in their
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
148 names that they share a single keyboard, and it treats them as a single
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
149 terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
150
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
151 Note that some graphical terminals can output to more than a one
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
152 monitor (or other output device) at the same time. On these
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
153 ``multi-monitor'' setups, a single @var{display} value controls the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
154 output to all the physical monitors. In this situation, there is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
155 currently no platform-independent way for Emacs to distinguish between
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
156 the different physical monitors.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
157
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
158 @deffn Command make-frame-on-display display &optional parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
159 This creates and returns a new frame on display @var{display}, taking
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
160 the other frame parameters from @var{parameters}. Aside from the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
161 @var{display} argument, it is like @code{make-frame} (@pxref{Creating
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
162 Frames}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
163 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
164
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
165 @defun x-display-list
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
166 This returns a list that indicates which X displays Emacs has a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
167 connection to. The elements of the list are strings, and each one is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
168 a display name.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
169 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
170
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
171 @defun x-open-connection display &optional xrm-string must-succeed
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
172 This function opens a connection to the X display @var{display}. It
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
173 does not create a frame on that display, but it permits you to check
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
174 that communication can be established with that display.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
175
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
176 The optional argument @var{xrm-string}, if not @code{nil}, is a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
177 string of resource names and values, in the same format used in the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
178 @file{.Xresources} file. The values you specify override the resource
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
179 values recorded in the X server itself; they apply to all Emacs frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
180 created on this display. Here's an example of what this string might
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
181 look like:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
182
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
183 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
184 "*BorderWidth: 3\n*InternalBorder: 2\n"
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
185 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
186
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
187 @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
188
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
189 If @var{must-succeed} is non-@code{nil}, failure to open the connection
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
190 terminates Emacs. Otherwise, it is an ordinary Lisp error.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
191 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
192
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
193 @defun x-close-connection display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
194 This function closes the connection to display @var{display}. Before
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
195 you can do this, you must first delete all the frames that were open on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
196 that display (@pxref{Deleting Frames}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
197 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
198
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
199 @node Frame Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
200 @section Frame Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
201 @cindex frame parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
202
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
203 A frame has many parameters that control its appearance and behavior.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
204 Just what parameters a frame has depends on what display mechanism it
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
205 uses.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
206
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
207 Frame parameters exist mostly for the sake of window systems. A
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
208 terminal frame has a few parameters, mostly for compatibility's sake;
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
209 only the @code{height}, @code{width}, @code{name}, @code{title},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
210 @code{menu-bar-lines}, @code{buffer-list} and @code{buffer-predicate}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
211 parameters do something special. If the terminal supports colors, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
212 parameters @code{foreground-color}, @code{background-color},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
213 @code{background-mode} and @code{display-type} are also meaningful.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
214
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
215 @menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
216 * Parameter Access:: How to change a frame's parameters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
217 * Initial Parameters:: Specifying frame parameters when you make a frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
218 * Window Frame Parameters:: List of frame parameters for window systems.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
219 * Size and Position:: Changing the size and position of a frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
220 * Geometry:: Parsing geometry specifications.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
221 @end menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
222
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
223 @node Parameter Access
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
224 @subsection Access to Frame Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
225
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
226 These functions let you read and change the parameter values of a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
227 frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
228
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
229 @defun frame-parameter frame parameter
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
230 This function returns the value of the parameter @var{parameter} (a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
231 symbol) of @var{frame}. If @var{frame} is @code{nil}, it returns the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
232 selected frame's parameter. If @var{frame} has no setting for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
233 @var{parameter}, this function returns @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
234 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
235
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
236 @defun frame-parameters &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
237 The function @code{frame-parameters} returns an alist listing all the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
238 parameters of @var{frame} and their values. If @var{frame} is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
239 @code{nil} or omitted, this returns the selected frame's parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
240 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
241
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
242 @defun modify-frame-parameters frame alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
243 This function alters the parameters of frame @var{frame} based on the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
244 elements of @var{alist}. Each element of @var{alist} has the form
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
245 @code{(@var{parm} . @var{value})}, where @var{parm} is a symbol naming a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
246 parameter. If you don't mention a parameter in @var{alist}, its value
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
247 doesn't change. If @var{frame} is @code{nil}, it defaults to the selected
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
248 frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
249 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
250
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
251 @defun modify-all-frames-parameters alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
252 This function alters the frame parameters of all existing frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
253 according to @var{alist}, then modifies @code{default-frame-alist}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
254 (and, if necessary, @code{initial-frame-alist}) to apply the same
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
255 parameter values to frames that will be created henceforth.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
256 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
257
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
258 @node Initial Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
259 @subsection Initial Frame Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
260
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
261 You can specify the parameters for the initial startup frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
262 by setting @code{initial-frame-alist} in your init file (@pxref{Init File}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
263
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
264 @defvar initial-frame-alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
265 This variable's value is an alist of parameter values used when creating
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
266 the initial window frame. You can set this variable to specify the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
267 appearance of the initial frame without altering subsequent frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
268 Each element has the form:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
269
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
270 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
271 (@var{parameter} . @var{value})
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
272 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
273
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
274 Emacs creates the initial frame before it reads your init
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
275 file. After reading that file, Emacs checks @code{initial-frame-alist},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
276 and applies the parameter settings in the altered value to the already
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
277 created initial frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
278
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
279 If these settings affect the frame geometry and appearance, you'll see
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
280 the frame appear with the wrong ones and then change to the specified
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
281 ones. If that bothers you, you can specify the same geometry and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
282 appearance with X resources; those do take effect before the frame is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
283 created. @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
284
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
285 X resource settings typically apply to all frames. If you want to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
286 specify some X resources solely for the sake of the initial frame, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
287 you don't want them to apply to subsequent frames, here's how to achieve
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
288 this. Specify parameters in @code{default-frame-alist} to override the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
289 X resources for subsequent frames; then, to prevent these from affecting
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
290 the initial frame, specify the same parameters in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
291 @code{initial-frame-alist} with values that match the X resources.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
292 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
293
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
294 If these parameters specify a separate minibuffer-only frame with
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
295 @code{(minibuffer . nil)}, and you have not created one, Emacs creates
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
296 one for you.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
297
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
298 @defvar minibuffer-frame-alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
299 This variable's value is an alist of parameter values used when creating
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
300 an initial minibuffer-only frame---if such a frame is needed, according
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
301 to the parameters for the main initial frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
302 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
303
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
304 @defvar default-frame-alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
305 This is an alist specifying default values of frame parameters for all
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
306 Emacs frames---the first frame, and subsequent frames. When using the X
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
307 Window System, you can get the same results by means of X resources
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
308 in many cases.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
309
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
310 Setting this variable does not affect existing frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
311 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
312
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
313 See also @code{special-display-frame-alist}. @xref{Definition of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
314 special-display-frame-alist}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
315
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
316 If you use options that specify window appearance when you invoke Emacs,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
317 they take effect by adding elements to @code{default-frame-alist}. One
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
318 exception is @samp{-geometry}, which adds the specified position to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
319 @code{initial-frame-alist} instead. @xref{Emacs Invocation,, Command
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
320 Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
321
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
322 @node Window Frame Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
323 @subsection Window Frame Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
324
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
325 Just what parameters a frame has depends on what display mechanism
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
326 it uses. This section describes the parameters that have special
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
327 meanings on some or all kinds of terminals. Of these, @code{name},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
328 @code{title}, @code{height}, @code{width}, @code{buffer-list} and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
329 @code{buffer-predicate} provide meaningful information in terminal
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
330 frames, and @code{tty-color-mode} is meaningful @emph{only} in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
331 terminal frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
332
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
333 @menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
334 * Basic Parameters:: Parameters that are fundamental.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
335 * Position Parameters:: The position of the frame on the screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
336 * Size Parameters:: Frame's size.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
337 * Layout Parameters:: Size of parts of the frame, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
338 enabling or disabling some parts.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
339 * Buffer Parameters:: Which buffers have been or should be shown.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
340 * Management Parameters:: Communicating with the window manager.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
341 * Cursor Parameters:: Controlling the cursor appearance.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
342 * Color Parameters:: Colors of various parts of the frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
343 @end menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
344
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
345 @node Basic Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
346 @subsubsection Basic Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
347
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
348 These frame parameters give the most basic information about the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
349 frame. @code{title} and @code{name} are meaningful on all terminals.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
350
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
351 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
352 @item display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
353 The display on which to open this frame. It should be a string of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
354 form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
355 @code{DISPLAY} environment variable.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
356
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
357 @item display-type
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
358 This parameter describes the range of possible colors that can be used
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
359 in this frame. Its value is @code{color}, @code{grayscale} or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
360 @code{mono}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
361
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
362 @item title
87453
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
363 If a frame has a non-@code{nil} title, it appears in the window
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
364 system's title bar at the top of the frame, and also in the mode line
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
365 of windows in that frame if @code{mode-line-frame-identification} uses
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
366 @samp{%F} (@pxref{%-Constructs}). This is normally the case when
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
367 Emacs is not using a window system, and can only display one frame at
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
368 a time. @xref{Frame Titles}.
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
369
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
370 @item name
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
371 The name of the frame. The frame name serves as a default for the frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
372 title, if the @code{title} parameter is unspecified or @code{nil}. If
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
373 you don't specify a name, Emacs sets the frame name automatically
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
374 (@pxref{Frame Titles}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
375
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
376 If you specify the frame name explicitly when you create the frame, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
377 name is also used (instead of the name of the Emacs executable) when
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
378 looking up X resources for the frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
379
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
380 @item display-environment-variable
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
381 The value of the @code{DISPLAY} environment variable for the frame. It
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
382 is passed to child processes.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
383
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
384 @item term-environment-variable
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
385 The value of the @code{TERM} environment variable for the frame. It
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
386 is passed to child processes.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
387 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
388
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
389 @node Position Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
390 @subsubsection Position Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
391
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
392 Position parameters' values are normally measured in pixels, but on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
393 text-only terminals they count characters or lines instead.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
394
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
395 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
396 @item left
92098
0ed1dc9e8852 Fix previous change.
Glenn Morris <rgm@gnu.org>
parents: 92096
diff changeset
397 The position, in pixels, of the left (or right) edge of the frame with
0ed1dc9e8852 Fix previous change.
Glenn Morris <rgm@gnu.org>
parents: 92096
diff changeset
398 respect to the left (or right) edge of the screen. The value may be:
92096
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
399
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
400 @table @asis
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
401 @item an integer
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
402 A positive integer relates the left edge of the frame to the left edge
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
403 of the screen. A negative integer relates the right frame edge to the
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
404 right screen edge.
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
405
92096
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
406 @item @code{(+ @var{pos})}
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
407 This specifies the position of the left frame edge relative to the left
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
408 screen edge. The integer @var{pos} may be positive or negative; a
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
409 negative value specifies a position outside the screen.
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
410
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
411 @item @code{(- @var{pos})}
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
412 This specifies the position of the right frame edge relative to the right
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
413 screen edge. The integer @var{pos} may be positive or negative; a
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
414 negative value specifies a position outside the screen.
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
415 @end table
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
416
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
417 Some window managers ignore program-specified positions. If you want to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
418 be sure the position you specify is not ignored, specify a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
419 non-@code{nil} value for the @code{user-position} parameter as well.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
420
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
421 @item top
92096
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
422 The screen position of the top (or bottom) edge, in pixels, with respect
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
423 to the top (or bottom) edge of the screen. It works just like
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
424 @code{left}, except vertically instead of horizontally.
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
425
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
426 @item icon-left
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
427 The screen position of the left edge @emph{of the frame's icon}, in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
428 pixels, counting from the left edge of the screen. This takes effect if
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
429 and when the frame is iconified.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
430
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
431 If you specify a value for this parameter, then you must also specify
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
432 a value for @code{icon-top} and vice versa. The window manager may
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
433 ignore these two parameters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
434
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
435 @item icon-top
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
436 The screen position of the top edge @emph{of the frame's icon}, in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
437 pixels, counting from the top edge of the screen. This takes effect if
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
438 and when the frame is iconified.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
439
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
440 @item user-position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
441 When you create a frame and specify its screen position with the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
442 @code{left} and @code{top} parameters, use this parameter to say whether
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
443 the specified position was user-specified (explicitly requested in some
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
444 way by a human user) or merely program-specified (chosen by a program).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
445 A non-@code{nil} value says the position was user-specified.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
446
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
447 Window managers generally heed user-specified positions, and some heed
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
448 program-specified positions too. But many ignore program-specified
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
449 positions, placing the window in a default fashion or letting the user
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
450 place it with the mouse. Some window managers, including @code{twm},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
451 let the user specify whether to obey program-specified positions or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
452 ignore them.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
453
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
454 When you call @code{make-frame}, you should specify a non-@code{nil}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
455 value for this parameter if the values of the @code{left} and @code{top}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
456 parameters represent the user's stated preference; otherwise, use
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
457 @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
458 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
459
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
460 @node Size Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
461 @subsubsection Size Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
462
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
463 Size parameters' values are normally measured in pixels, but on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
464 text-only terminals they count characters or lines instead.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
465
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
466 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
467 @item height
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
468 The height of the frame contents, in characters. (To get the height in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
469 pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
470
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
471 @item width
87453
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
472 The width of the frame contents, in characters. (To get the width in
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
473 pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
474
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
475 @item user-size
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
476 This does for the size parameters @code{height} and @code{width} what
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
477 the @code{user-position} parameter (see above) does for the position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
478 parameters @code{top} and @code{left}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
479
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
480 @item fullscreen
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
481 Specify that width, height or both shall be set to the size of the screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
482 The value @code{fullwidth} specifies that width shall be the size of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
483 screen. The value @code{fullheight} specifies that height shall be the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
484 size of the screen. The value @code{fullboth} specifies that both the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
485 width and the height shall be set to the size of the screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
486 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
487
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
488 @node Layout Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
489 @subsubsection Layout Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
490
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
491 These frame parameters enable or disable various parts of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
492 frame, or control their sizes.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
493
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
494 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
495 @item border-width
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
496 The width in pixels of the frame's border.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
497
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
498 @item internal-border-width
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
499 The distance in pixels between text (or fringe) and the frame's border.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
500
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
501 @item vertical-scroll-bars
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
502 Whether the frame has scroll bars for vertical scrolling, and which side
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
503 of the frame they should be on. The possible values are @code{left},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
504 @code{right}, and @code{nil} for no scroll bars.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
505
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
506 @ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
507 @item horizontal-scroll-bars
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
508 Whether the frame has scroll bars for horizontal scrolling
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
509 (non-@code{nil} means yes). Horizontal scroll bars are not currently
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
510 implemented.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
511 @end ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
512
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
513 @item scroll-bar-width
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
514 The width of vertical scroll bars, in pixels, or @code{nil} meaning to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
515 use the default width.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
516
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
517 @item left-fringe
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
518 @itemx right-fringe
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
519 The default width of the left and right fringes of windows in this
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
520 frame (@pxref{Fringes}). If either of these is zero, that effectively
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
521 removes the corresponding fringe. A value of @code{nil} stands for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
522 the standard fringe width, which is the width needed to display the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
523 fringe bitmaps.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
524
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
525 The combined fringe widths must add up to an integral number of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
526 columns, so the actual default fringe widths for the frame may be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
527 larger than the specified values. The extra width needed to reach an
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
528 acceptable total is distributed evenly between the left and right
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
529 fringe. However, you can force one fringe or the other to a precise
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
530 width by specifying that width as a negative integer. If both widths are
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
531 negative, only the left fringe gets the specified width.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
532
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
533 @item menu-bar-lines
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
534 The number of lines to allocate at the top of the frame for a menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
535 bar. The default is 1. A value of @code{nil} means don't display a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
536 menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
537 menu bar line; they treat larger values as 1.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
538
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
539 @item tool-bar-lines
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
540 The number of lines to use for the tool bar. A value of @code{nil}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
541 means don't display a tool bar. (GTK allows at most one tool bar line;
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
542 it treats larger values as 1.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
543
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
544 @item line-spacing
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
545 Additional space to leave below each text line, in pixels (a positive
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
546 integer). @xref{Line Height}, for more information.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
547 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
548
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
549 @node Buffer Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
550 @subsubsection Buffer Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
551
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
552 These frame parameters, meaningful on all kinds of terminals, deal
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
553 with which buffers have been, or should, be displayed in the frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
554
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
555 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
556 @item minibuffer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
557 Whether this frame has its own minibuffer. The value @code{t} means
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
558 yes, @code{nil} means no, @code{only} means this frame is just a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
559 minibuffer. If the value is a minibuffer window (in some other frame),
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
560 the new frame uses that minibuffer.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
561
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
562 @item buffer-predicate
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
563 The buffer-predicate function for this frame. The function
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
564 @code{other-buffer} uses this predicate (from the selected frame) to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
565 decide which buffers it should consider, if the predicate is not
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
566 @code{nil}. It calls the predicate with one argument, a buffer, once for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
567 each buffer; if the predicate returns a non-@code{nil} value, it
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
568 considers that buffer.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
569
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
570 @item buffer-list
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
571 A list of buffers that have been selected in this frame,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
572 ordered most-recently-selected first.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
573
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
574 @item unsplittable
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
575 If non-@code{nil}, this frame's window is never split automatically.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
576 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
577
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
578 @node Management Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
579 @subsubsection Window Management Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
580 @cindex window manager, and frame parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
581
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
582 These frame parameters, meaningful only on window system displays,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
583 interact with the window manager.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
584
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
585 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
586 @item visibility
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
587 The state of visibility of the frame. There are three possibilities:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
588 @code{nil} for invisible, @code{t} for visible, and @code{icon} for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
589 iconified. @xref{Visibility of Frames}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
590
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
591 @item auto-raise
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
592 Whether selecting the frame raises it (non-@code{nil} means yes).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
593
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
594 @item auto-lower
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
595 Whether deselecting the frame lowers it (non-@code{nil} means yes).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
596
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
597 @item icon-type
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
598 The type of icon to use for this frame when it is iconified. If the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
599 value is a string, that specifies a file containing a bitmap to use.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
600 Any other non-@code{nil} value specifies the default bitmap icon (a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
601 picture of a gnu); @code{nil} specifies a text icon.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
602
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
603 @item icon-name
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
604 The name to use in the icon for this frame, when and if the icon
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
605 appears. If this is @code{nil}, the frame's title is used.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
606
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
607 @item window-id
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
608 The number of the window-system window used by the frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
609 to contain the actual Emacs windows.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
610
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
611 @item outer-window-id
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
612 The number of the outermost window-system window used for the whole frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
613
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
614 @item wait-for-wm
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
615 If non-@code{nil}, tell Xt to wait for the window manager to confirm
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
616 geometry changes. Some window managers, including versions of Fvwm2
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
617 and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
618 prevent hanging with those window managers.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
619
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
620 @ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
621 @item parent-id
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
622 @c ??? Not yet working.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
623 The X window number of the window that should be the parent of this one.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
624 Specifying this lets you create an Emacs window inside some other
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
625 application's window. (It is not certain this will be implemented; try
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
626 it and see if it works.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
627 @end ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
628 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
629
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
630 @node Cursor Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
631 @subsubsection Cursor Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
632
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
633 This frame parameter controls the way the cursor looks.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
634
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
635 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
636 @item cursor-type
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
637 How to display the cursor. Legitimate values are:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
638
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
639 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
640 @item box
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
641 Display a filled box. (This is the default.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
642 @item hollow
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
643 Display a hollow box.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
644 @item nil
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
645 Don't display a cursor.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
646 @item bar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
647 Display a vertical bar between characters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
648 @item (bar . @var{width})
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
649 Display a vertical bar @var{width} pixels wide between characters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
650 @item hbar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
651 Display a horizontal bar.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
652 @item (hbar . @var{height})
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
653 Display a horizontal bar @var{height} pixels high.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
654 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
655 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
656
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
657 @vindex cursor-type
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
658 The buffer-local variable @code{cursor-type} overrides the value of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
659 the @code{cursor-type} frame parameter, but if it is @code{t}, that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
660 means to use the cursor specified for the frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
661
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
662 @defvar blink-cursor-alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
663 This variable specifies how to blink the cursor. Each element has the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
664 form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
665 type equals @var{on-state} (comparing using @code{equal}), the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
666 corresponding @var{off-state} specifies what the cursor looks like
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
667 when it blinks ``off.'' Both @var{on-state} and @var{off-state}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
668 should be suitable values for the @code{cursor-type} frame parameter.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
669
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
670 There are various defaults for how to blink each type of cursor, if
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
671 the type is not mentioned as an @var{on-state} here. Changes in this
85114
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
672 variable do not take effect immediately, only when you specify the
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
673 @code{cursor-type} frame parameter.
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
674 @end defvar
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
675
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
676 @defvar cursor-in-non-selected-windows
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
677 This variable controls how the cursor looks in a window that is not
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
678 selected. It supports the same values as the @code{cursor-type} frame
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
679 parameter; also, @code{nil} means don't display a cursor in
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
680 nonselected windows, and @code{t} (the default) means use a standard
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
681 modificatoin of the usual cursor type (solid box becomes hollow box,
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84116
diff changeset
682 and bar becomes a narrower bar).
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
683 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
684
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
685 @node Color Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
686 @subsubsection Color Parameters
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
687
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
688 These frame parameters control the use of colors.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
689
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
690 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
691 @item background-mode
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
692 This parameter is either @code{dark} or @code{light}, according
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
693 to whether the background color is a light one or a dark one.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
694
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
695 @item tty-color-mode
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
696 @cindex standard colors for character terminals
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
697 This parameter overrides the terminal's color support as given by the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
698 system's terminal capabilities database in that this parameter's value
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
699 specifies the color mode to use in terminal frames. The value can be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
700 either a symbol or a number. A number specifies the number of colors
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
701 to use (and, indirectly, what commands to issue to produce each
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
702 color). For example, @code{(tty-color-mode . 8)} specifies use of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
703 ANSI escape sequences for 8 standard text colors. A value of -1 turns
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
704 off color support.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
705
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
706 If the parameter's value is a symbol, it specifies a number through
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
707 the value of @code{tty-color-mode-alist}, and the associated number is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
708 used instead.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
709
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
710 @item screen-gamma
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
711 @cindex gamma correction
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
712 If this is a number, Emacs performs ``gamma correction'' which adjusts
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
713 the brightness of all colors. The value should be the screen gamma of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
714 your display, a floating point number.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
715
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
716 Usual PC monitors have a screen gamma of 2.2, so color values in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
717 Emacs, and in X windows generally, are calibrated to display properly
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
718 on a monitor with that gamma value. If you specify 2.2 for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
719 @code{screen-gamma}, that means no correction is needed. Other values
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
720 request correction, designed to make the corrected colors appear on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
721 your screen the way they would have appeared without correction on an
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
722 ordinary monitor with a gamma value of 2.2.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
723
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
724 If your monitor displays colors too light, you should specify a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
725 @code{screen-gamma} value smaller than 2.2. This requests correction
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
726 that makes colors darker. A screen gamma value of 1.5 may give good
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
727 results for LCD color displays.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
728 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
729
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
730 These frame parameters are semi-obsolete in that they are automatically
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
731 equivalent to particular face attributes of particular faces.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
732 @xref{Standard Faces,,, emacs, The Emacs Manual}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
733
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
734 @table @code
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
735 @item font
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
736 The name of the font for displaying text in the frame. This is a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
737 string, either a valid font name for your system or the name of an Emacs
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
738 fontset (@pxref{Fontsets}). It is equivalent to the @code{font}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
739 attribute of the @code{default} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
740
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
741 @item foreground-color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
742 The color to use for the image of a character. It is equivalent to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
743 the @code{:foreground} attribute of the @code{default} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
744
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
745 @item background-color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
746 The color to use for the background of characters. It is equivalent to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
747 the @code{:background} attribute of the @code{default} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
748
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
749 @item mouse-color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
750 The color for the mouse pointer. It is equivalent to the @code{:background}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
751 attribute of the @code{mouse} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
752
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
753 @item cursor-color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
754 The color for the cursor that shows point. It is equivalent to the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
755 @code{:background} attribute of the @code{cursor} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
756
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
757 @item border-color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
758 The color for the border of the frame. It is equivalent to the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
759 @code{:background} attribute of the @code{border} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
760
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
761 @item scroll-bar-foreground
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
762 If non-@code{nil}, the color for the foreground of scroll bars. It is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
763 equivalent to the @code{:foreground} attribute of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
764 @code{scroll-bar} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
765
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
766 @item scroll-bar-background
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
767 If non-@code{nil}, the color for the background of scroll bars. It is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
768 equivalent to the @code{:background} attribute of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
769 @code{scroll-bar} face.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
770 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
771
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
772 @node Size and Position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
773 @subsection Frame Size And Position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
774 @cindex size of frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
775 @cindex screen size
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
776 @cindex frame size
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
777 @cindex resize frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
778
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
779 You can read or change the size and position of a frame using the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
780 frame parameters @code{left}, @code{top}, @code{height}, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
781 @code{width}. Whatever geometry parameters you don't specify are chosen
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
782 by the window manager in its usual fashion.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
783
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
784 Here are some special features for working with sizes and positions.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
785 (For the precise meaning of ``selected frame'' used by these functions,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
786 see @ref{Input Focus}.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
787
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
788 @defun set-frame-position frame left top
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
789 This function sets the position of the top left corner of @var{frame} to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
790 @var{left} and @var{top}. These arguments are measured in pixels, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
791 normally count from the top left corner of the screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
792
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
793 Negative parameter values position the bottom edge of the window up from
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
794 the bottom edge of the screen, or the right window edge to the left of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
795 the right edge of the screen. It would probably be better if the values
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
796 were always counted from the left and top, so that negative arguments
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
797 would position the frame partly off the top or left edge of the screen,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
798 but it seems inadvisable to change that now.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
799 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
800
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
801 @defun frame-height &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
802 @defunx frame-width &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
803 These functions return the height and width of @var{frame}, measured in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
804 lines and columns. If you don't supply @var{frame}, they use the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
805 selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
806 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
807
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
808 @defun screen-height
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
809 @defunx screen-width
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
810 These functions are old aliases for @code{frame-height} and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
811 @code{frame-width}. When you are using a non-window terminal, the size
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
812 of the frame is normally the same as the size of the terminal screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
813 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
814
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
815 @defun frame-pixel-height &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
816 @defunx frame-pixel-width &optional frame
87453
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
817 These functions return the height and width of the main display area
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
818 of @var{frame}, measured in pixels. If you don't supply @var{frame},
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
819 they use the selected frame.
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
820
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
821 These values include the internal borders, and windows' scroll bars
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
822 and fringes (which belong to individual windows, not to the frame
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
823 itself), but do not include menu bars or tool bars (except when using
cdd30283527d Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85688
diff changeset
824 X without an X toolkit).
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
825 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
826
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
827 @defun frame-char-height &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
828 @defunx frame-char-width &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
829 These functions return the height and width of a character in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
830 @var{frame}, measured in pixels. The values depend on the choice of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
831 font. If you don't supply @var{frame}, these functions use the selected
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
832 frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
833 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
834
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
835 @defun set-frame-size frame cols rows
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
836 This function sets the size of @var{frame}, measured in characters;
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
837 @var{cols} and @var{rows} specify the new width and height.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
838
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
839 To set the size based on values measured in pixels, use
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
840 @code{frame-char-height} and @code{frame-char-width} to convert
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
841 them to units of characters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
842 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
843
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
844 @defun set-frame-height frame lines &optional pretend
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
845 This function resizes @var{frame} to a height of @var{lines} lines. The
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
846 sizes of existing windows in @var{frame} are altered proportionally to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
847 fit.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
848
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
849 If @var{pretend} is non-@code{nil}, then Emacs displays @var{lines}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
850 lines of output in @var{frame}, but does not change its value for the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
851 actual height of the frame. This is only useful for a terminal frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
852 Using a smaller height than the terminal actually implements may be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
853 useful to reproduce behavior observed on a smaller screen, or if the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
854 terminal malfunctions when using its whole screen. Setting the frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
855 height ``for real'' does not always work, because knowing the correct
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
856 actual size may be necessary for correct cursor positioning on a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
857 terminal frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
858 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
859
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
860 @defun set-frame-width frame width &optional pretend
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
861 This function sets the width of @var{frame}, measured in characters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
862 The argument @var{pretend} has the same meaning as in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
863 @code{set-frame-height}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
864 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
865
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
866 @findex set-screen-height
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
867 @findex set-screen-width
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
868 The older functions @code{set-screen-height} and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
869 @code{set-screen-width} were used to specify the height and width of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
870 screen, in Emacs versions that did not support multiple frames. They
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
871 are semi-obsolete, but still work; they apply to the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
872
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
873 @node Geometry
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
874 @subsection Geometry
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
875
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
876 Here's how to examine the data in an X-style window geometry
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
877 specification:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
878
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
879 @defun x-parse-geometry geom
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
880 @cindex geometry specification
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
881 The function @code{x-parse-geometry} converts a standard X window
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
882 geometry string to an alist that you can use as part of the argument to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
883 @code{make-frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
884
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
885 The alist describes which parameters were specified in @var{geom}, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
886 gives the values specified for them. Each element looks like
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
887 @code{(@var{parameter} . @var{value})}. The possible @var{parameter}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
888 values are @code{left}, @code{top}, @code{width}, and @code{height}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
889
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
890 For the size parameters, the value must be an integer. The position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
891 parameter names @code{left} and @code{top} are not totally accurate,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
892 because some values indicate the position of the right or bottom edges
92096
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
893 instead. The @var{value} possibilities for the position parameters are:
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
894 an integer, a list @code{(+ @var{pos})}, or a list @code{(- @var{pos})};
6cc4c897d108 (Position Parameters): Clarify the description of `left' and `top',
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
895 as previously described (@pxref{Position Parameters}).
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
896
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
897 Here is an example:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
898
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
899 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
900 (x-parse-geometry "35x70+0-0")
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
901 @result{} ((height . 70) (width . 35)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
902 (top - 0) (left . 0))
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
903 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
904 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
905
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
906 @node Frame Titles
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
907 @section Frame Titles
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
908 @cindex frame title
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
909
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
910 Every frame has a @code{name} parameter; this serves as the default
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
911 for the frame title which window systems typically display at the top of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
912 the frame. You can specify a name explicitly by setting the @code{name}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
913 frame property.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
914
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
915 Normally you don't specify the name explicitly, and Emacs computes the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
916 frame name automatically based on a template stored in the variable
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
917 @code{frame-title-format}. Emacs recomputes the name each time the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
918 frame is redisplayed.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
919
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
920 @defvar frame-title-format
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
921 This variable specifies how to compute a name for a frame when you have
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
922 not explicitly specified one. The variable's value is actually a mode
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
923 line construct, just like @code{mode-line-format}, except that the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
924 @samp{%c} and @samp{%l} constructs are ignored. @xref{Mode Line
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
925 Data}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
926 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
927
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
928 @defvar icon-title-format
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
929 This variable specifies how to compute the name for an iconified frame,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
930 when you have not explicitly specified the frame title. This title
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
931 appears in the icon itself.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
932 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
933
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
934 @defvar multiple-frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
935 This variable is set automatically by Emacs. Its value is @code{t} when
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
936 there are two or more frames (not counting minibuffer-only frames or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
937 invisible frames). The default value of @code{frame-title-format} uses
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
938 @code{multiple-frames} so as to put the buffer name in the frame title
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
939 only when there is more than one frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
940
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
941 The value of this variable is not guaranteed to be accurate except
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
942 while processing @code{frame-title-format} or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
943 @code{icon-title-format}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
944 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
945
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
946 @node Deleting Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
947 @section Deleting Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
948 @cindex deleting frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
949
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
950 Frames remain potentially visible until you explicitly @dfn{delete}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
951 them. A deleted frame cannot appear on the screen, but continues to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
952 exist as a Lisp object until there are no references to it.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
953
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
954 @deffn Command delete-frame &optional frame force
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
955 @vindex delete-frame-functions
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
956 This function deletes the frame @var{frame}. Unless @var{frame} is a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
957 tooltip, it first runs the hook @code{delete-frame-functions} (each
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
958 function gets one argument, @var{frame}). By default, @var{frame} is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
959 the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
960
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
961 A frame cannot be deleted if its minibuffer is used by other frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
962 Normally, you cannot delete a frame if all other frames are invisible,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
963 but if the @var{force} is non-@code{nil}, then you are allowed to do so.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
964 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
965
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
966 @defun frame-live-p frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
967 The function @code{frame-live-p} returns non-@code{nil} if the frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
968 @var{frame} has not been deleted. The possible non-@code{nil} return
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
969 values are like those of @code{framep}. @xref{Frames}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
970 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
971
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
972 Some window managers provide a command to delete a window. These work
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
973 by sending a special message to the program that operates the window.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
974 When Emacs gets one of these commands, it generates a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
975 @code{delete-frame} event, whose normal definition is a command that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
976 calls the function @code{delete-frame}. @xref{Misc Events}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
977
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
978 @node Finding All Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
979 @section Finding All Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
980 @cindex frames, scanning all
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
981
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
982 @defun frame-list
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
983 The function @code{frame-list} returns a list of all the frames that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
984 have not been deleted. It is analogous to @code{buffer-list} for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
985 buffers, and includes frames on all terminals. The list that you get is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
986 newly created, so modifying the list doesn't have any effect on the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
987 internals of Emacs.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
988 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
989
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
990 @defun visible-frame-list
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
991 This function returns a list of just the currently visible frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
992 @xref{Visibility of Frames}. (Terminal frames always count as
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
993 ``visible,'' even though only the selected one is actually displayed.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
994 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
995
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
996 @defun next-frame &optional frame minibuf
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
997 The function @code{next-frame} lets you cycle conveniently through all
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
998 the frames on the current display from an arbitrary starting point. It
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
999 returns the ``next'' frame after @var{frame} in the cycle. If
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1000 @var{frame} is omitted or @code{nil}, it defaults to the selected frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1001 (@pxref{Input Focus}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1002
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1003 The second argument, @var{minibuf}, says which frames to consider:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1004
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1005 @table @asis
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1006 @item @code{nil}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1007 Exclude minibuffer-only frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1008 @item @code{visible}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1009 Consider all visible frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1010 @item 0
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1011 Consider all visible or iconified frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1012 @item a window
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1013 Consider only the frames using that particular window as their
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1014 minibuffer.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1015 @item anything else
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1016 Consider all frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1017 @end table
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1018 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1019
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1020 @defun previous-frame &optional frame minibuf
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1021 Like @code{next-frame}, but cycles through all frames in the opposite
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1022 direction.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1023 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1024
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1025 See also @code{next-window} and @code{previous-window}, in @ref{Cyclic
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1026 Window Ordering}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1027
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1028 @node Frames and Windows
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1029 @section Frames and Windows
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1030
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1031 Each window is part of one and only one frame; you can get the frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1032 with @code{window-frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1033
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1034 @defun window-frame window
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1035 This function returns the frame that @var{window} is on.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1036 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1037
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1038 All the non-minibuffer windows in a frame are arranged in a cyclic
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1039 order. The order runs from the frame's top window, which is at the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1040 upper left corner, down and to the right, until it reaches the window at
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1041 the lower right corner (always the minibuffer window, if the frame has
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1042 one), and then it moves back to the top. @xref{Cyclic Window Ordering}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1043
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1044 @defun frame-first-window &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1045 This returns the topmost, leftmost window of frame @var{frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1046 If omitted or @code{nil}, @var{frame} defaults to the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1047 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1048
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1049 At any time, exactly one window on any frame is @dfn{selected within the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1050 frame}. The significance of this designation is that selecting the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1051 frame also selects this window. You can get the frame's current
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1052 selected window with @code{frame-selected-window}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1053
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1054 @defun frame-selected-window &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1055 This function returns the window on @var{frame} that is selected
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1056 within @var{frame}. If omitted or @code{nil}, @var{frame} defaults to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1057 the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1058 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1059
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1060 @defun set-frame-selected-window frame window
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1061 This sets the selected window of frame @var{frame} to @var{window}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1062 If @var{frame} is @code{nil}, it operates on the selected frame. If
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1063 @var{frame} is the selected frame, this makes @var{window} the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1064 selected window. This function returns @var{window}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1065 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1066
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1067 Conversely, selecting a window for Emacs with @code{select-window} also
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1068 makes that window selected within its frame. @xref{Selecting Windows}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1069
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1070 Another function that (usually) returns one of the windows in a given
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1071 frame is @code{minibuffer-window}. @xref{Definition of minibuffer-window}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1072
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1073 @node Minibuffers and Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1074 @section Minibuffers and Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1075
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1076 Normally, each frame has its own minibuffer window at the bottom, which
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1077 is used whenever that frame is selected. If the frame has a minibuffer,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1078 you can get it with @code{minibuffer-window} (@pxref{Definition of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1079 minibuffer-window}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1080
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1081 However, you can also create a frame with no minibuffer. Such a frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1082 must use the minibuffer window of some other frame. When you create the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1083 frame, you can specify explicitly the minibuffer window to use (in some
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1084 other frame). If you don't, then the minibuffer is found in the frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1085 which is the value of the variable @code{default-minibuffer-frame}. Its
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1086 value should be a frame that does have a minibuffer.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1087
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1088 If you use a minibuffer-only frame, you might want that frame to raise
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1089 when you enter the minibuffer. If so, set the variable
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1090 @code{minibuffer-auto-raise} to @code{t}. @xref{Raising and Lowering}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1091
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1092 @defvar default-minibuffer-frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1093 This variable specifies the frame to use for the minibuffer window, by
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1094 default. It does not affect existing frames. It is always local to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1095 the current terminal and cannot be buffer-local. @xref{Multiple
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1096 Displays}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1097 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1098
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1099 @node Input Focus
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1100 @section Input Focus
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1101 @cindex input focus
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1102 @c @cindex selected frame Duplicates selected-frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1103
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1104 At any time, one frame in Emacs is the @dfn{selected frame}. The selected
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1105 window always resides on the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1106
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1107 When Emacs displays its frames on several terminals (@pxref{Multiple
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1108 Displays}), each terminal has its own selected frame. But only one of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1109 these is ``@emph{the} selected frame'': it's the frame that belongs to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1110 the terminal from which the most recent input came. That is, when Emacs
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1111 runs a command that came from a certain terminal, the selected frame is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1112 the one of that terminal. Since Emacs runs only a single command at any
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1113 given time, it needs to consider only one selected frame at a time; this
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1114 frame is what we call @dfn{the selected frame} in this manual. The
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1115 display on which the selected frame is displayed is the @dfn{selected
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1116 frame's display}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1117
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1118 @defun selected-frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1119 This function returns the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1120 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1121
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1122 Some window systems and window managers direct keyboard input to the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1123 window object that the mouse is in; others require explicit clicks or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1124 commands to @dfn{shift the focus} to various window objects. Either
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1125 way, Emacs automatically keeps track of which frame has the focus. To
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1126 switch to a different frame from a Lisp function, call
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1127 @code{select-frame-set-input-focus}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1128
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1129 Lisp programs can also switch frames ``temporarily'' by calling the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1130 function @code{select-frame}. This does not alter the window system's
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1131 concept of focus; rather, it escapes from the window manager's control
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1132 until that control is somehow reasserted.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1133
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1134 When using a text-only terminal, only one frame can be displayed at a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1135 time on the terminal, so after a call to @code{select-frame}, the next
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1136 redisplay actually displays the newly selected frame. This frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1137 remains selected until a subsequent call to @code{select-frame} or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1138 @code{select-frame-set-input-focus}. Each terminal frame has a number
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1139 which appears in the mode line before the buffer name (@pxref{Mode
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1140 Line Variables}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1141
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1142 @defun select-frame-set-input-focus frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1143 This function makes @var{frame} the selected frame, raises it (should
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1144 it happen to be obscured by other frames) and tries to give it the X
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1145 server's focus. On a text-only terminal, the next redisplay displays
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1146 the new frame on the entire terminal screen. The return value of this
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1147 function is not significant.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1148 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1149
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1150 @c ??? This is not yet implemented properly.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1151 @defun select-frame frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1152 This function selects frame @var{frame}, temporarily disregarding the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1153 focus of the X server if any. The selection of @var{frame} lasts until
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1154 the next time the user does something to select a different frame, or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1155 until the next time this function is called. (If you are using a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1156 window system, the previously selected frame may be restored as the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1157 selected frame after return to the command loop, because it still may
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1158 have the window system's input focus.) The specified @var{frame}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1159 becomes the selected frame, as explained above, and the terminal that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1160 @var{frame} is on becomes the selected terminal. This function
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1161 returns @var{frame}, or @code{nil} if @var{frame} has been deleted.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1162
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1163 In general, you should never use @code{select-frame} in a way that could
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1164 switch to a different terminal without switching back when you're done.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1165 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1166
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1167 Emacs cooperates with the window system by arranging to select frames as
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1168 the server and window manager request. It does so by generating a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1169 special kind of input event, called a @dfn{focus} event, when
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1170 appropriate. The command loop handles a focus event by calling
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1171 @code{handle-switch-frame}. @xref{Focus Events}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1172
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1173 @deffn Command handle-switch-frame frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1174 This function handles a focus event by selecting frame @var{frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1175
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1176 Focus events normally do their job by invoking this command.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1177 Don't call it for any other reason.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1178 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1179
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1180 @defun redirect-frame-focus frame &optional focus-frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1181 This function redirects focus from @var{frame} to @var{focus-frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1182 This means that @var{focus-frame} will receive subsequent keystrokes and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1183 events intended for @var{frame}. After such an event, the value of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1184 @code{last-event-frame} will be @var{focus-frame}. Also, switch-frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1185 events specifying @var{frame} will instead select @var{focus-frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1186
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1187 If @var{focus-frame} is omitted or @code{nil}, that cancels any existing
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1188 redirection for @var{frame}, which therefore once again receives its own
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1189 events.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1190
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1191 One use of focus redirection is for frames that don't have minibuffers.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1192 These frames use minibuffers on other frames. Activating a minibuffer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1193 on another frame redirects focus to that frame. This puts the focus on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1194 the minibuffer's frame, where it belongs, even though the mouse remains
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1195 in the frame that activated the minibuffer.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1196
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1197 Selecting a frame can also change focus redirections. Selecting frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1198 @code{bar}, when @code{foo} had been selected, changes any redirections
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1199 pointing to @code{foo} so that they point to @code{bar} instead. This
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1200 allows focus redirection to work properly when the user switches from
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1201 one frame to another using @code{select-window}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1202
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1203 This means that a frame whose focus is redirected to itself is treated
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1204 differently from a frame whose focus is not redirected.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1205 @code{select-frame} affects the former but not the latter.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1206
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1207 The redirection lasts until @code{redirect-frame-focus} is called to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1208 change it.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1209 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1210
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1211 @defopt focus-follows-mouse
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1212 This option is how you inform Emacs whether the window manager transfers
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1213 focus when the user moves the mouse. Non-@code{nil} says that it does.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1214 When this is so, the command @code{other-frame} moves the mouse to a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1215 position consistent with the new selected frame. (This option has no
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1216 effect on MS-Windows, where the mouse pointer is always automatically
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1217 moved by the OS to the selected frame.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1218 @end defopt
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1219
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1220 @node Visibility of Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1221 @section Visibility of Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1222 @cindex visible frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1223 @cindex invisible frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1224 @cindex iconified frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1225 @cindex frame visibility
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1226
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1227 A window frame may be @dfn{visible}, @dfn{invisible}, or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1228 @dfn{iconified}. If it is visible, you can see its contents, unless
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1229 other windows cover it. If it is iconified, the frame's contents do
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1230 not appear on the screen, but an icon does. If the frame is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1231 invisible, it doesn't show on the screen, not even as an icon.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1232
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1233 Visibility is meaningless for terminal frames, since only the selected
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1234 one is actually displayed in any case.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1235
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1236 @deffn Command make-frame-visible &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1237 This function makes frame @var{frame} visible. If you omit
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1238 @var{frame}, it makes the selected frame visible. This does not raise
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1239 the frame, but you can do that with @code{raise-frame} if you wish
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1240 (@pxref{Raising and Lowering}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1241 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1242
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1243 @deffn Command make-frame-invisible &optional frame force
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1244 This function makes frame @var{frame} invisible. If you omit
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1245 @var{frame}, it makes the selected frame invisible.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1246
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1247 Unless @var{force} is non-@code{nil}, this function refuses to make
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1248 @var{frame} invisible if all other frames are invisible..
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1249 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1250
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1251 @deffn Command iconify-frame &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1252 This function iconifies frame @var{frame}. If you omit @var{frame}, it
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1253 iconifies the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1254 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1255
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1256 @defun frame-visible-p frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1257 This returns the visibility status of frame @var{frame}. The value is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1258 @code{t} if @var{frame} is visible, @code{nil} if it is invisible, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1259 @code{icon} if it is iconified.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1260
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1261 On a text-only terminal, all frames are considered visible, whether
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1262 they are currently being displayed or not, and this function returns
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1263 @code{t} for all frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1264 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1265
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1266 The visibility status of a frame is also available as a frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1267 parameter. You can read or change it as such. @xref{Management
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1268 Parameters}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1269
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1270 The user can iconify and deiconify frames with the window manager.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1271 This happens below the level at which Emacs can exert any control, but
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1272 Emacs does provide events that you can use to keep track of such
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1273 changes. @xref{Misc Events}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1274
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1275 @node Raising and Lowering
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1276 @section Raising and Lowering Frames
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1277
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1278 Most window systems use a desktop metaphor. Part of this metaphor is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1279 the idea that windows are stacked in a notional third dimension
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1280 perpendicular to the screen surface, and thus ordered from ``highest''
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1281 to ``lowest.'' Where two windows overlap, the one higher up covers
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1282 the one underneath. Even a window at the bottom of the stack can be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1283 seen if no other window overlaps it.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1284
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1285 @c @cindex raising a frame redundant with raise-frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1286 @cindex lowering a frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1287 A window's place in this ordering is not fixed; in fact, users tend
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1288 to change the order frequently. @dfn{Raising} a window means moving
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1289 it ``up,'' to the top of the stack. @dfn{Lowering} a window means
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1290 moving it to the bottom of the stack. This motion is in the notional
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1291 third dimension only, and does not change the position of the window
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1292 on the screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1293
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1294 You can raise and lower Emacs frame Windows with these functions:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1295
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1296 @deffn Command raise-frame &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1297 This function raises frame @var{frame} (default, the selected frame).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1298 If @var{frame} is invisible or iconified, this makes it visible.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1299 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1300
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1301 @deffn Command lower-frame &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1302 This function lowers frame @var{frame} (default, the selected frame).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1303 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1304
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1305 @defopt minibuffer-auto-raise
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1306 If this is non-@code{nil}, activation of the minibuffer raises the frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1307 that the minibuffer window is in.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1308 @end defopt
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1309
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1310 You can also enable auto-raise (raising automatically when a frame is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1311 selected) or auto-lower (lowering automatically when it is deselected)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1312 for any frame using frame parameters. @xref{Management Parameters}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1313
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1314 @node Frame Configurations
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1315 @section Frame Configurations
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1316 @cindex frame configuration
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1317
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1318 A @dfn{frame configuration} records the current arrangement of frames,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1319 all their properties, and the window configuration of each one.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1320 (@xref{Window Configurations}.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1321
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1322 @defun current-frame-configuration
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1323 This function returns a frame configuration list that describes
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1324 the current arrangement of frames and their contents.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1325 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1326
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1327 @defun set-frame-configuration configuration &optional nodelete
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1328 This function restores the state of frames described in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1329 @var{configuration}. However, this function does not restore deleted
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1330 frames.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1331
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1332 Ordinarily, this function deletes all existing frames not listed in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1333 @var{configuration}. But if @var{nodelete} is non-@code{nil}, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1334 unwanted frames are iconified instead.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1335 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1336
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1337 @node Mouse Tracking
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1338 @section Mouse Tracking
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1339 @cindex mouse tracking
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1340 @c @cindex tracking the mouse Duplicates track-mouse
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1341
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1342 Sometimes it is useful to @dfn{track} the mouse, which means to display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1343 something to indicate where the mouse is and move the indicator as the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1344 mouse moves. For efficient mouse tracking, you need a way to wait until
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1345 the mouse actually moves.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1346
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1347 The convenient way to track the mouse is to ask for events to represent
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1348 mouse motion. Then you can wait for motion by waiting for an event. In
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1349 addition, you can easily handle any other sorts of events that may
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1350 occur. That is useful, because normally you don't want to track the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1351 mouse forever---only until some other event, such as the release of a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1352 button.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1353
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1354 @defspec track-mouse body@dots{}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1355 This special form executes @var{body}, with generation of mouse motion
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1356 events enabled. Typically @var{body} would use @code{read-event} to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1357 read the motion events and modify the display accordingly. @xref{Motion
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1358 Events}, for the format of mouse motion events.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1359
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1360 The value of @code{track-mouse} is that of the last form in @var{body}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1361 You should design @var{body} to return when it sees the up-event that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1362 indicates the release of the button, or whatever kind of event means
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1363 it is time to stop tracking.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1364 @end defspec
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1365
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1366 The usual purpose of tracking mouse motion is to indicate on the screen
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1367 the consequences of pushing or releasing a button at the current
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1368 position.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1369
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1370 In many cases, you can avoid the need to track the mouse by using
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1371 the @code{mouse-face} text property (@pxref{Special Properties}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1372 That works at a much lower level and runs more smoothly than
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1373 Lisp-level mouse tracking.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1374
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1375 @ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1376 @c These are not implemented yet.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1377
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1378 These functions change the screen appearance instantaneously. The
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1379 effect is transient, only until the next ordinary Emacs redisplay. That
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1380 is OK for mouse tracking, since it doesn't make sense for mouse tracking
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1381 to change the text, and the body of @code{track-mouse} normally reads
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1382 the events itself and does not do redisplay.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1383
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1384 @defun x-contour-region window beg end
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1385 This function draws lines to make a box around the text from @var{beg}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1386 to @var{end}, in window @var{window}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1387 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1388
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1389 @defun x-uncontour-region window beg end
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1390 This function erases the lines that would make a box around the text
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1391 from @var{beg} to @var{end}, in window @var{window}. Use it to remove
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1392 a contour that you previously made by calling @code{x-contour-region}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1393 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1394
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1395 @defun x-draw-rectangle frame left top right bottom
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1396 This function draws a hollow rectangle on frame @var{frame} with the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1397 specified edge coordinates, all measured in pixels from the inside top
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1398 left corner. It uses the cursor color, the one used for indicating the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1399 location of point.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1400 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1401
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1402 @defun x-erase-rectangle frame left top right bottom
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1403 This function erases a hollow rectangle on frame @var{frame} with the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1404 specified edge coordinates, all measured in pixels from the inside top
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1405 left corner. Erasure means redrawing the text and background that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1406 normally belong in the specified rectangle.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1407 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1408 @end ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1409
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1410 @node Mouse Position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1411 @section Mouse Position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1412 @cindex mouse position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1413 @cindex position of mouse
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1414
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1415 The functions @code{mouse-position} and @code{set-mouse-position}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1416 give access to the current position of the mouse.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1417
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1418 @defun mouse-position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1419 This function returns a description of the position of the mouse. The
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1420 value looks like @code{(@var{frame} @var{x} . @var{y})}, where @var{x}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1421 and @var{y} are integers giving the position in characters relative to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1422 the top left corner of the inside of @var{frame}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1423 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1424
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1425 @defvar mouse-position-function
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1426 If non-@code{nil}, the value of this variable is a function for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1427 @code{mouse-position} to call. @code{mouse-position} calls this
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1428 function just before returning, with its normal return value as the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1429 sole argument, and it returns whatever this function returns to it.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1430
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1431 This abnormal hook exists for the benefit of packages like
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1432 @file{xt-mouse.el} that need to do mouse handling at the Lisp level.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1433 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1434
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1435 @defun set-mouse-position frame x y
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1436 This function @dfn{warps the mouse} to position @var{x}, @var{y} in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1437 frame @var{frame}. The arguments @var{x} and @var{y} are integers,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1438 giving the position in characters relative to the top left corner of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1439 inside of @var{frame}. If @var{frame} is not visible, this function
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1440 does nothing. The return value is not significant.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1441 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1442
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1443 @defun mouse-pixel-position
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1444 This function is like @code{mouse-position} except that it returns
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1445 coordinates in units of pixels rather than units of characters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1446 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1447
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1448 @defun set-mouse-pixel-position frame x y
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1449 This function warps the mouse like @code{set-mouse-position} except that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1450 @var{x} and @var{y} are in units of pixels rather than units of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1451 characters. These coordinates are not required to be within the frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1452
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1453 If @var{frame} is not visible, this function does nothing. The return
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1454 value is not significant.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1455 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1456
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1457 @need 3000
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1458
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1459 @node Pop-Up Menus
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1460 @section Pop-Up Menus
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1461
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1462 When using a window system, a Lisp program can pop up a menu so that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1463 the user can choose an alternative with the mouse.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1464
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1465 @defun x-popup-menu position menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1466 This function displays a pop-up menu and returns an indication of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1467 what selection the user makes.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1468
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1469 The argument @var{position} specifies where on the screen to put the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1470 top left corner of the menu. It can be either a mouse button event
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1471 (which says to put the menu where the user actuated the button) or a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1472 list of this form:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1473
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1474 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1475 ((@var{xoffset} @var{yoffset}) @var{window})
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1476 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1477
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1478 @noindent
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1479 where @var{xoffset} and @var{yoffset} are coordinates, measured in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1480 pixels, counting from the top left corner of @var{window}. @var{window}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1481 may be a window or a frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1482
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1483 If @var{position} is @code{t}, it means to use the current mouse
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1484 position. If @var{position} is @code{nil}, it means to precompute the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1485 key binding equivalents for the keymaps specified in @var{menu},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1486 without actually displaying or popping up the menu.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1487
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1488 The argument @var{menu} says what to display in the menu. It can be a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1489 keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1490 return value is the list of events corresponding to the user's choice.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1491 (This list has more than one element if the choice occurred in a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1492 submenu.) Note that @code{x-popup-menu} does not actually execute the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1493 command bound to that sequence of events.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1494
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1495 Alternatively, @var{menu} can have the following form:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1496
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1497 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1498 (@var{title} @var{pane1} @var{pane2}...)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1499 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1500
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1501 @noindent
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1502 where each pane is a list of form
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1503
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1504 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1505 (@var{title} @var{item1} @var{item2}...)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1506 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1507
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1508 Each item should normally be a cons cell @code{(@var{line} . @var{value})},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1509 where @var{line} is a string, and @var{value} is the value to return if
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1510 that @var{line} is chosen. An item can also be a string; this makes a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1511 non-selectable line in the menu.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1512
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1513 If the user gets rid of the menu without making a valid choice, for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1514 instance by clicking the mouse away from a valid choice or by typing
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1515 keyboard input, then this normally results in a quit and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1516 @code{x-popup-menu} does not return. But if @var{position} is a mouse
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1517 button event (indicating that the user invoked the menu with the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1518 mouse) then no quit occurs and @code{x-popup-menu} returns @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1519 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1520
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1521 @strong{Usage note:} Don't use @code{x-popup-menu} to display a menu
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1522 if you could do the job with a prefix key defined with a menu keymap.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1523 If you use a menu keymap to implement a menu, @kbd{C-h c} and @kbd{C-h
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1524 a} can see the individual items in that menu and provide help for them.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1525 If instead you implement the menu by defining a command that calls
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1526 @code{x-popup-menu}, the help facilities cannot know what happens inside
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1527 that command, so they cannot give any help for the menu's items.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1528
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1529 The menu bar mechanism, which lets you switch between submenus by
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1530 moving the mouse, cannot look within the definition of a command to see
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1531 that it calls @code{x-popup-menu}. Therefore, if you try to implement a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1532 submenu using @code{x-popup-menu}, it cannot work with the menu bar in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1533 an integrated fashion. This is why all menu bar submenus are
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1534 implemented with menu keymaps within the parent menu, and never with
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1535 @code{x-popup-menu}. @xref{Menu Bar}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1536
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1537 If you want a menu bar submenu to have contents that vary, you should
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1538 still use a menu keymap to implement it. To make the contents vary, add
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1539 a hook function to @code{menu-bar-update-hook} to update the contents of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1540 the menu keymap as necessary.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1541
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1542 @node Dialog Boxes
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1543 @section Dialog Boxes
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1544 @cindex dialog boxes
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1545
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1546 A dialog box is a variant of a pop-up menu---it looks a little
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1547 different, it always appears in the center of a frame, and it has just
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1548 one level and one or more buttons. The main use of dialog boxes is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1549 for asking questions that the user can answer with ``yes,'' ``no,''
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1550 and a few other alternatives. With a single button, they can also
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1551 force the user to acknowledge important information. The functions
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1552 @code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1553 keyboard, when called from commands invoked by mouse clicks.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1554
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1555 @defun x-popup-dialog position contents &optional header
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1556 This function displays a pop-up dialog box and returns an indication of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1557 what selection the user makes. The argument @var{contents} specifies
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1558 the alternatives to offer; it has this format:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1559
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1560 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1561 (@var{title} (@var{string} . @var{value})@dots{})
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1562 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1563
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1564 @noindent
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1565 which looks like the list that specifies a single pane for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1566 @code{x-popup-menu}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1567
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1568 The return value is @var{value} from the chosen alternative.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1569
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1570 As for @code{x-popup-menu}, an element of the list may be just a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1571 string instead of a cons cell @code{(@var{string} . @var{value})}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1572 That makes a box that cannot be selected.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1573
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1574 If @code{nil} appears in the list, it separates the left-hand items from
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1575 the right-hand items; items that precede the @code{nil} appear on the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1576 left, and items that follow the @code{nil} appear on the right. If you
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1577 don't include a @code{nil} in the list, then approximately half the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1578 items appear on each side.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1579
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1580 Dialog boxes always appear in the center of a frame; the argument
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1581 @var{position} specifies which frame. The possible values are as in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1582 @code{x-popup-menu}, but the precise coordinates or the individual
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1583 window don't matter; only the frame matters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1584
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1585 If @var{header} is non-@code{nil}, the frame title for the box is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1586 @samp{Information}, otherwise it is @samp{Question}. The former is used
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1587 for @code{message-box} (@pxref{message-box}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1588
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1589 In some configurations, Emacs cannot display a real dialog box; so
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1590 instead it displays the same items in a pop-up menu in the center of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1591 frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1592
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1593 If the user gets rid of the dialog box without making a valid choice,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1594 for instance using the window manager, then this produces a quit and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1595 @code{x-popup-dialog} does not return.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1596 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1597
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1598 @node Pointer Shape
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1599 @section Pointer Shape
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1600 @cindex pointer shape
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1601 @cindex mouse pointer shape
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1602
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1603 You can specify the mouse pointer style for particular text or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1604 images using the @code{pointer} text property, and for images with the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1605 @code{:pointer} and @code{:map} image properties. The values you can
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1606 use in these properties are @code{text} (or @code{nil}), @code{arrow},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1607 @code{hand}, @code{vdrag}, @code{hdrag}, @code{modeline}, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1608 @code{hourglass}. @code{text} stands for the usual mouse pointer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1609 style used over text.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1610
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1611 Over void parts of the window (parts that do not correspond to any
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1612 of the buffer contents), the mouse pointer usually uses the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1613 @code{arrow} style, but you can specify a different style (one of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1614 those above) by setting @code{void-text-area-pointer}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1615
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1616 @defvar void-text-area-pointer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1617 This variable specifies the mouse pointer style for void text areas.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1618 These include the areas after the end of a line or below the last line
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1619 in the buffer. The default is to use the @code{arrow} (non-text)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1620 pointer style.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1621 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1622
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1623 You can specify what the @code{text} pointer style really looks like
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1624 by setting the variable @code{x-pointer-shape}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1625
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1626 @defvar x-pointer-shape
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1627 This variable specifies the pointer shape to use ordinarily in the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1628 Emacs frame, for the @code{text} pointer style.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1629 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1630
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1631 @defvar x-sensitive-text-pointer-shape
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1632 This variable specifies the pointer shape to use when the mouse
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1633 is over mouse-sensitive text.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1634 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1635
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1636 These variables affect newly created frames. They do not normally
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1637 affect existing frames; however, if you set the mouse color of a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1638 frame, that also installs the current value of those two variables.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1639 @xref{Color Parameters}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1640
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1641 The values you can use, to specify either of these pointer shapes, are
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1642 defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1643 @key{RET} x-pointer @key{RET}} to see a list of them.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1644
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1645 @node Window System Selections
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1646 @section Window System Selections
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1647 @cindex selection (for window systems)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1648
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1649 The X server records a set of @dfn{selections} which permit transfer of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1650 data between application programs. The various selections are
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1651 distinguished by @dfn{selection types}, represented in Emacs by
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1652 symbols. X clients including Emacs can read or set the selection for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1653 any given type.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1654
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1655 @deffn Command x-set-selection type data
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1656 This function sets a ``selection'' in the X server. It takes two
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1657 arguments: a selection type @var{type}, and the value to assign to it,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1658 @var{data}. If @var{data} is @code{nil}, it means to clear out the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1659 selection. Otherwise, @var{data} may be a string, a symbol, an integer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1660 (or a cons of two integers or list of two integers), an overlay, or a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1661 cons of two markers pointing to the same buffer. An overlay or a pair
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1662 of markers stands for text in the overlay or between the markers.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1663
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1664 The argument @var{data} may also be a vector of valid non-vector
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1665 selection values.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1666
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1667 Each possible @var{type} has its own selection value, which changes
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1668 independently. The usual values of @var{type} are @code{PRIMARY},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1669 @code{SECONDARY} and @code{CLIPBOARD}; these are symbols with upper-case
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1670 names, in accord with X Window System conventions. If @var{type} is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1671 @code{nil}, that stands for @code{PRIMARY}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1672
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1673 This function returns @var{data}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1674 @end deffn
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1675
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1676 @defun x-get-selection &optional type data-type
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1677 This function accesses selections set up by Emacs or by other X
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1678 clients. It takes two optional arguments, @var{type} and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1679 @var{data-type}. The default for @var{type}, the selection type, is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1680 @code{PRIMARY}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1681
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1682 The @var{data-type} argument specifies the form of data conversion to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1683 use, to convert the raw data obtained from another X client into Lisp
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1684 data. Meaningful values include @code{TEXT}, @code{STRING},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1685 @code{UTF8_STRING}, @code{TARGETS}, @code{LENGTH}, @code{DELETE},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1686 @code{FILE_NAME}, @code{CHARACTER_POSITION}, @code{NAME},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1687 @code{LINE_NUMBER}, @code{COLUMN_NUMBER}, @code{OWNER_OS},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1688 @code{HOST_NAME}, @code{USER}, @code{CLASS}, @code{ATOM}, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1689 @code{INTEGER}. (These are symbols with upper-case names in accord
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1690 with X conventions.) The default for @var{data-type} is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1691 @code{STRING}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1692 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1693
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1694 @cindex cut buffer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1695 The X server also has a set of eight numbered @dfn{cut buffers} which can
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1696 store text or other data being moved between applications. Cut buffers
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1697 are considered obsolete, but Emacs supports them for the sake of X
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1698 clients that still use them. Cut buffers are numbered from 0 to 7.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1699
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1700 @defun x-get-cut-buffer &optional n
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1701 This function returns the contents of cut buffer number @var{n}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1702 If omitted @var{n} defaults to 0.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1703 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1704
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1705 @defun x-set-cut-buffer string &optional push
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1706 @anchor{Definition of x-set-cut-buffer}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1707 This function stores @var{string} into the first cut buffer (cut buffer
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1708 0). If @var{push} is @code{nil}, only the first cut buffer is changed.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1709 If @var{push} is non-@code{nil}, that says to move the values down
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1710 through the series of cut buffers, much like the way successive kills in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1711 Emacs move down the kill ring. In other words, the previous value of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1712 the first cut buffer moves into the second cut buffer, and the second to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1713 the third, and so on through all eight cut buffers.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1714 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1715
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1716 @defvar selection-coding-system
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1717 This variable specifies the coding system to use when reading and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1718 writing selections or the clipboard. @xref{Coding
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1719 Systems}. The default is @code{compound-text-with-extensions}, which
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1720 converts to the text representation that X11 normally uses.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1721 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1722
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1723 @cindex clipboard support (for MS-Windows)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1724 When Emacs runs on MS-Windows, it does not implement X selections in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1725 general, but it does support the clipboard. @code{x-get-selection}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1726 and @code{x-set-selection} on MS-Windows support the text data type
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1727 only; if the clipboard holds other types of data, Emacs treats the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1728 clipboard as empty.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1729
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1730 @defopt x-select-enable-clipboard
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1731 If this is non-@code{nil}, the Emacs yank functions consult the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1732 clipboard before the primary selection, and the kill functions store in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1733 the clipboard as well as the primary selection. Otherwise they do not
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1734 access the clipboard at all. The default is @code{nil} on most systems,
97043
9592c50233ab Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 92098
diff changeset
1735 but @code{t} on MS-Windows.
84068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1736 @end defopt
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1737
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1738 @node Drag and Drop
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1739 @section Drag and Drop
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1740
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1741 @vindex x-dnd-test-function
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1742 @vindex x-dnd-known-types
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1743 When a user drags something from another application over Emacs, that other
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1744 application expects Emacs to tell it if Emacs can handle the data that is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1745 dragged. The variable @code{x-dnd-test-function} is used by Emacs to determine
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1746 what to reply. The default value is @code{x-dnd-default-test-function}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1747 which accepts drops if the type of the data to be dropped is present in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1748 @code{x-dnd-known-types}. You can customize @code{x-dnd-test-function} and/or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1749 @code{x-dnd-known-types} if you want Emacs to accept or reject drops based
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1750 on some other criteria.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1751
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1752 @vindex x-dnd-types-alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1753 If you want to change the way Emacs handles drop of different types
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1754 or add a new type, customize @code{x-dnd-types-alist}. This requires
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1755 detailed knowledge of what types other applications use for drag and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1756 drop.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1757
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1758 @vindex dnd-protocol-alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1759 When an URL is dropped on Emacs it may be a file, but it may also be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1760 another URL type (ftp, http, etc.). Emacs first checks
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1761 @code{dnd-protocol-alist} to determine what to do with the URL. If
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1762 there is no match there and if @code{browse-url-browser-function} is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1763 an alist, Emacs looks for a match there. If no match is found the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1764 text for the URL is inserted. If you want to alter Emacs behavior,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1765 you can customize these variables.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1766
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1767 @node Color Names
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1768 @section Color Names
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1769
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1770 @cindex color names
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1771 @cindex specify color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1772 @cindex numerical RGB color specification
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1773 A color name is text (usually in a string) that specifies a color.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1774 Symbolic names such as @samp{black}, @samp{white}, @samp{red}, etc.,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1775 are allowed; use @kbd{M-x list-colors-display} to see a list of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1776 defined names. You can also specify colors numerically in forms such
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1777 as @samp{#@var{rgb}} and @samp{RGB:@var{r}/@var{g}/@var{b}}, where
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1778 @var{r} specifies the red level, @var{g} specifies the green level,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1779 and @var{b} specifies the blue level. You can use either one, two,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1780 three, or four hex digits for @var{r}; then you must use the same
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1781 number of hex digits for all @var{g} and @var{b} as well, making
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1782 either 3, 6, 9 or 12 hex digits in all. (See the documentation of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1783 X Window System for more details about numerical RGB specification of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1784 colors.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1785
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1786 These functions provide a way to determine which color names are
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1787 valid, and what they look like. In some cases, the value depends on the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1788 @dfn{selected frame}, as described below; see @ref{Input Focus}, for the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1789 meaning of the term ``selected frame.''
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1790
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1791 @defun color-defined-p color &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1792 This function reports whether a color name is meaningful. It returns
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1793 @code{t} if so; otherwise, @code{nil}. The argument @var{frame} says
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1794 which frame's display to ask about; if @var{frame} is omitted or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1795 @code{nil}, the selected frame is used.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1796
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1797 Note that this does not tell you whether the display you are using
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1798 really supports that color. When using X, you can ask for any defined
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1799 color on any kind of display, and you will get some result---typically,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1800 the closest it can do. To determine whether a frame can really display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1801 a certain color, use @code{color-supported-p} (see below).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1802
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1803 @findex x-color-defined-p
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1804 This function used to be called @code{x-color-defined-p},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1805 and that name is still supported as an alias.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1806 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1807
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1808 @defun defined-colors &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1809 This function returns a list of the color names that are defined
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1810 and supported on frame @var{frame} (default, the selected frame).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1811 If @var{frame} does not support colors, the value is @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1812
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1813 @findex x-defined-colors
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1814 This function used to be called @code{x-defined-colors},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1815 and that name is still supported as an alias.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1816 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1817
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1818 @defun color-supported-p color &optional frame background-p
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1819 This returns @code{t} if @var{frame} can really display the color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1820 @var{color} (or at least something close to it). If @var{frame} is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1821 omitted or @code{nil}, the question applies to the selected frame.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1822
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1823 Some terminals support a different set of colors for foreground and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1824 background. If @var{background-p} is non-@code{nil}, that means you are
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1825 asking whether @var{color} can be used as a background; otherwise you
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1826 are asking whether it can be used as a foreground.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1827
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1828 The argument @var{color} must be a valid color name.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1829 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1830
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1831 @defun color-gray-p color &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1832 This returns @code{t} if @var{color} is a shade of gray, as defined on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1833 @var{frame}'s display. If @var{frame} is omitted or @code{nil}, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1834 question applies to the selected frame. If @var{color} is not a valid
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1835 color name, this function returns @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1836 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1837
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1838 @defun color-values color &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1839 @cindex rgb value
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1840 This function returns a value that describes what @var{color} should
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1841 ideally look like on @var{frame}. If @var{color} is defined, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1842 value is a list of three integers, which give the amount of red, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1843 amount of green, and the amount of blue. Each integer ranges in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1844 principle from 0 to 65535, but some displays may not use the full
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1845 range. This three-element list is called the @dfn{rgb values} of the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1846 color.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1847
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1848 If @var{color} is not defined, the value is @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1849
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1850 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1851 (color-values "black")
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1852 @result{} (0 0 0)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1853 (color-values "white")
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1854 @result{} (65280 65280 65280)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1855 (color-values "red")
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1856 @result{} (65280 0 0)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1857 (color-values "pink")
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1858 @result{} (65280 49152 51968)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1859 (color-values "hungry")
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1860 @result{} nil
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1861 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1862
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1863 The color values are returned for @var{frame}'s display. If
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1864 @var{frame} is omitted or @code{nil}, the information is returned for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1865 the selected frame's display. If the frame cannot display colors, the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1866 value is @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1867
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1868 @findex x-color-values
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1869 This function used to be called @code{x-color-values},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1870 and that name is still supported as an alias.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1871 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1872
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1873 @node Text Terminal Colors
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1874 @section Text Terminal Colors
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1875 @cindex colors on text-only terminals
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1876
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1877 Text-only terminals usually support only a small number of colors,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1878 and the computer uses small integers to select colors on the terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1879 This means that the computer cannot reliably tell what the selected
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1880 color looks like; instead, you have to inform your application which
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1881 small integers correspond to which colors. However, Emacs does know
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1882 the standard set of colors and will try to use them automatically.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1883
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1884 The functions described in this section control how terminal colors
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1885 are used by Emacs.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1886
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1887 Several of these functions use or return @dfn{rgb values}, described
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1888 in @ref{Color Names}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1889
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1890 These functions accept a display (either a frame or the name of a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1891 terminal) as an optional argument. We hope in the future to make Emacs
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1892 support more than one text-only terminal at one time; then this argument
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1893 will specify which terminal to operate on (the default being the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1894 selected frame's terminal; @pxref{Input Focus}). At present, though,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1895 the @var{frame} argument has no effect.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1896
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1897 @defun tty-color-define name number &optional rgb frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1898 This function associates the color name @var{name} with
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1899 color number @var{number} on the terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1900
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1901 The optional argument @var{rgb}, if specified, is an rgb value, a list
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1902 of three numbers that specify what the color actually looks like.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1903 If you do not specify @var{rgb}, then this color cannot be used by
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1904 @code{tty-color-approximate} to approximate other colors, because
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1905 Emacs will not know what it looks like.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1906 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1907
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1908 @defun tty-color-clear &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1909 This function clears the table of defined colors for a text-only terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1910 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1911
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1912 @defun tty-color-alist &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1913 This function returns an alist recording the known colors supported by a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1914 text-only terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1915
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1916 Each element has the form @code{(@var{name} @var{number} . @var{rgb})}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1917 or @code{(@var{name} @var{number})}. Here, @var{name} is the color
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1918 name, @var{number} is the number used to specify it to the terminal.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1919 If present, @var{rgb} is a list of three color values (for red, green,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1920 and blue) that says what the color actually looks like.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1921 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1922
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1923 @defun tty-color-approximate rgb &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1924 This function finds the closest color, among the known colors
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1925 supported for @var{display}, to that described by the rgb value
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1926 @var{rgb} (a list of color values). The return value is an element of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1927 @code{tty-color-alist}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1928 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1929
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1930 @defun tty-color-translate color &optional frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1931 This function finds the closest color to @var{color} among the known
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1932 colors supported for @var{display} and returns its index (an integer).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1933 If the name @var{color} is not defined, the value is @code{nil}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1934 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1935
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1936 @node Resources
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1937 @section X Resources
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1938
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1939 @defun x-get-resource attribute class &optional component subclass
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1940 The function @code{x-get-resource} retrieves a resource value from the X
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1941 Window defaults database.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1942
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1943 Resources are indexed by a combination of a @dfn{key} and a @dfn{class}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1944 This function searches using a key of the form
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1945 @samp{@var{instance}.@var{attribute}} (where @var{instance} is the name
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1946 under which Emacs was invoked), and using @samp{Emacs.@var{class}} as
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1947 the class.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1948
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1949 The optional arguments @var{component} and @var{subclass} add to the key
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1950 and the class, respectively. You must specify both of them or neither.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1951 If you specify them, the key is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1952 @samp{@var{instance}.@var{component}.@var{attribute}}, and the class is
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1953 @samp{Emacs.@var{class}.@var{subclass}}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1954 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1955
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1956 @defvar x-resource-class
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1957 This variable specifies the application name that @code{x-get-resource}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1958 should look up. The default value is @code{"Emacs"}. You can examine X
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1959 resources for application names other than ``Emacs'' by binding this
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1960 variable to some other string, around a call to @code{x-get-resource}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1961 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1962
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1963 @defvar x-resource-name
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1964 This variable specifies the instance name that @code{x-get-resource}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1965 should look up. The default value is the name Emacs was invoked with,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1966 or the value specified with the @samp{-name} or @samp{-rn} switches.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1967 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1968
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1969 To illustrate some of the above, suppose that you have the line:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1970
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1971 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1972 xterm.vt100.background: yellow
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1973 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1974
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1975 @noindent
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1976 in your X resources file (whose name is usually @file{~/.Xdefaults}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1977 or @file{~/.Xresources}). Then:
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1978
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1979 @example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1980 @group
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1981 (let ((x-resource-class "XTerm") (x-resource-name "xterm"))
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1982 (x-get-resource "vt100.background" "VT100.Background"))
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1983 @result{} "yellow"
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1984 @end group
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1985 @group
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1986 (let ((x-resource-class "XTerm") (x-resource-name "xterm"))
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1987 (x-get-resource "background" "VT100" "vt100" "Background"))
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1988 @result{} "yellow"
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1989 @end group
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1990 @end example
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1991
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1992 @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1993
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1994 @node Display Feature Testing
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1995 @section Display Feature Testing
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1996 @cindex display feature testing
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1997
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1998 The functions in this section describe the basic capabilities of a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1999 particular display. Lisp programs can use them to adapt their behavior
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2000 to what the display can do. For example, a program that ordinarily uses
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2001 a popup menu could use the minibuffer if popup menus are not supported.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2002
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2003 The optional argument @var{display} in these functions specifies which
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2004 display to ask the question about. It can be a display name, a frame
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2005 (which designates the display that frame is on), or @code{nil} (which
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2006 refers to the selected frame's display, @pxref{Input Focus}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2007
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2008 @xref{Color Names}, @ref{Text Terminal Colors}, for other functions to
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2009 obtain information about displays.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2010
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2011 @defun display-popup-menus-p &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2012 This function returns @code{t} if popup menus are supported on
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2013 @var{display}, @code{nil} if not. Support for popup menus requires that
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2014 the mouse be available, since the user cannot choose menu items without
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2015 a mouse.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2016 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2017
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2018 @defun display-graphic-p &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2019 This function returns @code{t} if @var{display} is a graphic display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2020 capable of displaying several frames and several different fonts at
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2021 once. This is true for displays that use a window system such as X, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2022 false for text-only terminals.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2023 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2024
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2025 @defun display-mouse-p &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2026 @cindex mouse, availability
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2027 This function returns @code{t} if @var{display} has a mouse available,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2028 @code{nil} if not.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2029 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2030
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2031 @defun display-color-p &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2032 @findex x-display-color-p
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2033 This function returns @code{t} if the screen is a color screen.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2034 It used to be called @code{x-display-color-p}, and that name
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2035 is still supported as an alias.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2036 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2037
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2038 @defun display-grayscale-p &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2039 This function returns @code{t} if the screen can display shades of gray.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2040 (All color displays can do this.)
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2041 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2042
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2043 @defun display-supports-face-attributes-p attributes &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2044 @anchor{Display Face Attribute Testing}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2045 This function returns non-@code{nil} if all the face attributes in
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2046 @var{attributes} are supported (@pxref{Face Attributes}).
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2047
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2048 The definition of `supported' is somewhat heuristic, but basically
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2049 means that a face containing all the attributes in @var{attributes},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2050 when merged with the default face for display, can be represented in a
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2051 way that's
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2052
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2053 @enumerate
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2054 @item
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2055 different in appearance than the default face, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2056
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2057 @item
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2058 `close in spirit' to what the attributes specify, if not exact.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2059 @end enumerate
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2060
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2061 Point (2) implies that a @code{:weight black} attribute will be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2062 satisfied by any display that can display bold, as will
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2063 @code{:foreground "yellow"} as long as some yellowish color can be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2064 displayed, but @code{:slant italic} will @emph{not} be satisfied by
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2065 the tty display code's automatic substitution of a `dim' face for
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2066 italic.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2067 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2068
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2069 @defun display-selections-p &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2070 This function returns @code{t} if @var{display} supports selections.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2071 Windowed displays normally support selections, but they may also be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2072 supported in some other cases.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2073 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2074
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2075 @defun display-images-p &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2076 This function returns @code{t} if @var{display} can display images.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2077 Windowed displays ought in principle to handle images, but some
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2078 systems lack the support for that. On a display that does not support
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2079 images, Emacs cannot display a tool bar.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2080 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2081
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2082 @defun display-screens &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2083 This function returns the number of screens associated with the display.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2084 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2085
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2086 @defun display-pixel-height &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2087 This function returns the height of the screen in pixels.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2088 On a character terminal, it gives the height in characters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2089
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2090 For graphical terminals, note that on ``multi-monitor'' setups this
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2091 refers to the pixel width for all physical monitors associated with
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2092 @var{display}. @xref{Multiple Displays}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2093 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2094
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2095 @defun display-pixel-width &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2096 This function returns the width of the screen in pixels.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2097 On a character terminal, it gives the width in characters.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2098
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2099 For graphical terminals, note that on ``multi-monitor'' setups this
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2100 refers to the pixel width for all physical monitors associated with
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2101 @var{display}. @xref{Multiple Displays}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2102 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2103
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2104 @defun display-mm-height &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2105 This function returns the height of the screen in millimeters,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2106 or @code{nil} if Emacs cannot get that information.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2107 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2108
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2109 @defun display-mm-width &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2110 This function returns the width of the screen in millimeters,
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2111 or @code{nil} if Emacs cannot get that information.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2112 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2113
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2114 @defvar display-mm-dimensions-alist
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2115 This variable allows the user to specify the dimensions of graphical
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2116 displays returned by @code{display-mm-height} and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2117 @code{display-mm-width} in case the system provides incorrect values.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2118 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2119
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2120 @defun display-backing-store &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2121 This function returns the backing store capability of the display.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2122 Backing store means recording the pixels of windows (and parts of
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2123 windows) that are not exposed, so that when exposed they can be
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2124 displayed very quickly.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2125
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2126 Values can be the symbols @code{always}, @code{when-mapped}, or
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2127 @code{not-useful}. The function can also return @code{nil}
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2128 when the question is inapplicable to a certain kind of display.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2129 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2130
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2131 @defun display-save-under &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2132 This function returns non-@code{nil} if the display supports the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2133 SaveUnder feature. That feature is used by pop-up windows
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2134 to save the pixels they obscure, so that they can pop down
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2135 quickly.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2136 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2137
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2138 @defun display-planes &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2139 This function returns the number of planes the display supports.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2140 This is typically the number of bits per pixel.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2141 For a tty display, it is log to base two of the number of colors supported.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2142 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2143
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2144 @defun display-visual-class &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2145 This function returns the visual class for the screen. The value is one
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2146 of the symbols @code{static-gray}, @code{gray-scale},
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2147 @code{static-color}, @code{pseudo-color}, @code{true-color}, and
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2148 @code{direct-color}.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2149 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2150
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2151 @defun display-color-cells &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2152 This function returns the number of color cells the screen supports.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2153 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2154
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2155 These functions obtain additional information specifically
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2156 about X displays.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2157
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2158 @defun x-server-version &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2159 This function returns the list of version numbers of the X server
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2160 running the display. The value is a list of three integers: the major
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2161 and minor version numbers of the X protocol, and the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2162 distributor-specific release number of the X server software itself.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2163 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2164
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2165 @defun x-server-vendor &optional display
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2166 This function returns the ``vendor'' that provided the X server
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2167 software (as a string). Really this means whoever distributes the X
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2168 server.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2169
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2170 When the developers of X labelled software distributors as
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2171 ``vendors,'' they showed their false assumption that no system could
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2172 ever be developed and distributed noncommercially.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2173 @end defun
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2174
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2175 @ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2176 @defvar x-no-window-manager
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2177 This variable's value is @code{t} if no X window manager is in use.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2178 @end defvar
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2179 @end ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2180
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2181 @ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2182 @item
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2183 The functions @code{x-pixel-width} and @code{x-pixel-height} return the
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2184 width and height of an X Window frame, measured in pixels.
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2185 @end ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2186
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2187 @ignore
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2188 arch-tag: 94977df6-3dca-4730-b57b-c6329e9282ba
c5bc1b7f62d7 Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2189 @end ignore