annotate man/xemacs/frame.texi @ 1633:baca156a450b

[xemacs-hg @ 2003-08-19 02:11:46 by james] Make modules build and run on Cygwin and MinGW. This is the second commit to get the toplevel files that were not committed the first time.
author james
date Tue, 19 Aug 2003 02:11:49 +0000
parents 6355bae896e3
children 6b0000935adc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 @node Frame, Keystrokes, Concept Index, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 @chapter The XEmacs Frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 @cindex frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 @cindex window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 @cindex buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 @table @asis
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 @item Frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 In many environments, such as a tty terminal, an XEmacs frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 literally takes up the whole screen. If you are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 running XEmacs in a multi-window system like the X Window System, the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 XEmacs frame takes up one X window. @xref{XEmacs under X}, for more
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 information.@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 @item Window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 No matter what environment you are running in, XEmacs allows you to look
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 at several buffers at the same time by having several windows be part of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 the frame. Often, the whole frame is taken up by just one window, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 you can split the frame into two or more subwindows. If you are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 running XEmacs under the X window system, that means you can have several
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 @dfn{XEmacs windows} inside the X window that contains the XEmacs frame.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 You can even have multiple frames in different X windows, each with
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
24 their own set of subwindows.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 @refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 @end table
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
28 Each XEmacs frame displays a variety of information:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 The biggest area usually displays the text you are editing. It may
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 consist of one window or of two or more windows if you need to look at two
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
33 buffers a the same time.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 Below each text window's last line is a @dfn{mode line} (@pxref{Mode
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 Line}), which describes what is going on in that window. The mode line
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 is in inverse video if the terminal supports that. If there are several
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 XEmacs windows in one frame, each window has its own mode line.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 At the bottom of each XEmacs frame is the @dfn{echo area} or @dfn{minibuffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 window}(@pxref{Echo Area}). It is used by XEmacs to exchange information
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 with the user. There is only one echo area per XEmacs frame.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 @item
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
44 If you are running XEmacs under a graphical windowing system, a
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 menu bar at the top of the frame makes shortcuts to several of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 commands available (@pxref{Pull-down Menus}).
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
47 @item
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
48 Under a graphical windowing system, a
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
49 toolbar at the top of the frame, just under the menu bar if it exists,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
50 provides ``one-touch'' shortcuts to several commands. (Not yet
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
51 documented.)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
52 @item
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
53 Under a graphical windowing system, a
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
54 gutter at the top (under the toolbar) and/or bottom of the frame
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
55 provides advanced GUI facilities like tab controls for rapid switching
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
56 among related windows and progress bars for time-consuming operations
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
57 like downloads across the Internet. Gutters are an experimental feature
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
58 introduced in XEmacs version 21.2. (Not yet documented.)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 You can subdivide the XEmacs frame into multiple text windows, and use
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 each window for a different file (@pxref{Windows}). Multiple XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 windows are tiled vertically on the XEmacs frame. The upper XEmacs window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 is separated from the lower window by its mode line.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 When there are multiple, tiled XEmacs windows on a single XEmacs frame,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 the XEmacs window receiving input from the keyboard has the @dfn{keyboard
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 focus} and is called the @dfn{selected window}. The selected window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 contains the cursor, which indicates the insertion point. If you are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 working in an environment that permits multiple XEmacs frames, and you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 move the focus from one XEmacs frame into another, the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 selected window is the one that was last selected in that frame.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 The same text can be displayed simultaneously in several XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 windows, which can be in different XEmacs frames. If you alter the text
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 in an XEmacs buffer by editing it in one XEmacs window, the changes are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 visible in all XEmacs windows containing that buffer.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 @menu
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
81 * Point:: The place in the text where editing commands operate.
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
82 * Echo Area:: Short messages appear at the bottom of the frame.
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
83 * Mode Line:: Interpreting the mode line.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
84 * GUI Components:: Menubar, toolbars, gutters.
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
85 * XEmacs under X:: Some information on using XEmacs under the X
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
86 Window System.
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
87 * XEmacs under MS Windows:: Some information on using XEmacs under
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
88 Microsoft Windows.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 @node Point, Echo Area, Frame, Frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 @section Point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 @cindex point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 @cindex cursor
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 When XEmacs is running, the cursor shows the location at which editing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 commands will take effect. This location is called @dfn{point}. You
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 can use keystrokes or the mouse cursor to move point through the text
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 and edit the text at different places.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 While the cursor appears to point @var{at} a character, you should
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 think of point as @var{between} two characters: it points @var{before}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 the character on which the cursor appears. The exception is at the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 end of the line, where the cursor appears after the last character of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 the line. Where the display is capable, the cursor at the end of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 line will appear differently from a cursor over whitespace at the end
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 of the line. (In an X Windows frame, the end-of-line cursor is half
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 the width of a within-line cursor.) Sometimes people speak of ``the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 cursor'' when they mean ``point,'' or speak of commands that move
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111 point as ``cursor motion'' commands.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 Each XEmacs frame has only one cursor. When output is in progress, the cursor
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114 must appear where the typing is being done. This does not mean that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115 point is moving. It is only that XEmacs has no way to show you the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 location of point except when the terminal is idle.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 If you are editing several files in XEmacs, each file has its own point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 location. A file that is not being displayed remembers where point is.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 Point becomes visible at the correct location when you look at the file again.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 When there are multiple text windows, each window has its own point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 location. The cursor shows the location of point in the selected
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 window. The visible cursor also shows you which window is selected. If
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 the same buffer appears in more than one window, point can be moved in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 each window independently.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 The term `point' comes from the character @samp{.}, which was the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 command in TECO (the language in which the original Emacs was written)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 for accessing the value now called `point'.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 @node Echo Area, Mode Line, Point, Frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 @section The Echo Area
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 @cindex echo area
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136 The line at the bottom of the frame (below the mode line) is the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137 @dfn{echo area}. XEmacs uses this area to communicate with the user:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 @dfn{Echoing} means printing out the characters that the user types. XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 never echoes single-character commands. Multi-character commands are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 echoed only if you pause while typing them: As soon as you pause for more
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 than one second in the middle of a command, all the characters of the command
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 so far are echoed. This is intended to @dfn{prompt} you for the rest of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 the command. Once echoing has started, the rest of the command is echoed
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 immediately as you type it. This behavior is designed to give confident
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 users fast response, while giving hesitant users maximum feedback. You
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 can change this behavior by setting a variable (@pxref{Display Vars}).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 If you issue a command that cannot be executed, XEmacs may print an
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 @dfn{error message} in the echo area. Error messages are accompanied by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 a beep or by flashing the frame. Any input you have typed ahead is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 thrown away when an error happens.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 Some commands print informative messages in the echo area. These
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 messages look similar to error messages, but are not announced with a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 beep and do not throw away input. Sometimes a message tells you what the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 command has done, when this is not obvious from looking at the text being
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 edited. Sometimes the sole purpose of a command is to print a message
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 giving you specific information. For example, the command @kbd{C-x =} is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 used to print a message describing the character position of point in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 text and its current column in the window. Commands that take a long time
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 often display messages ending in @samp{...} while they are working, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 add @samp{done} at the end when they are finished.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 The echo area is also used to display the @dfn{minibuffer}, a window
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168 that is used for reading arguments to commands, such as the name of a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 file to be edited. When the minibuffer is in use, the echo area displays
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 with a prompt string that usually ends with a colon. The cursor
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 appears after the prompt. You can always get out of the minibuffer by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 typing @kbd{C-g}. @xref{Minibuffer}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
175 @node Mode Line, GUI Components, Echo Area, Frame
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177 @section The Mode Line
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 @cindex mode line
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 @cindex top level
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 Each text window's last line is a @dfn{mode line} which describes what is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 going on in that window. When there is only one text window, the mode line
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 appears right above the echo area. The mode line is in inverse video if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 the terminal supports that, starts and ends with dashes, and contains text
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185 like @samp{XEmacs:@: @var{something}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 If a mode line has something else in place of @samp{XEmacs:@:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 @var{something}}, the window above it is in a special subsystem
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 such as Dired. The mode line then indicates the status of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190 subsystem.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192 Normally, the mode line has the following appearance:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 --@var{ch}-XEmacs: @var{buf} (@var{major} @var{minor})----@var{pos}------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198 @noindent
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 This gives information about the buffer being displayed in the window: the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 buffer's name, what major and minor modes are in use, whether the buffer's
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 text has been changed, and how far down the buffer you are currently
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 looking.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204 @var{ch} contains two stars (@samp{**}) if the text in the buffer has been
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 edited (the buffer is ``modified''), or two dashes (@samp{--}) if the
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
206 buffer has not been edited. Exception: for a read-only buffer, it is
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207 @samp{%%}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209 @var{buf} is the name of the window's chosen @dfn{buffer}. The chosen
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210 buffer in the selected window (the window that the cursor is in) is also
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 XEmacs's selected buffer, the buffer in which editing takes place. When
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212 we speak of what some command does to ``the buffer'', we mean the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 currently selected buffer. @xref{Buffers}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 @var{pos} tells you whether there is additional text above the top of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216 the screen or below the bottom. If your file is small and it is
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
217 completely visible on the screen, @var{pos} is @samp{All}. Otherwise,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 @var{pos} is @samp{Top} if you are looking at the beginning of the file,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219 @samp{Bot} if you are looking at the end of the file, or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220 @samp{@var{nn}%}, where @var{nn} is the percentage of the file above the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221 top of the screen.@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 @var{major} is the name of the @dfn{major mode} in effect in the buffer. At
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 any time, each buffer is in one and only one major mode.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225 The available major modes include Fundamental mode (the least specialized),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226 Text mode, Lisp mode, and C mode. @xref{Major Modes}, for details
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227 on how the modes differ and how you select one.@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229 @var{minor} is a list of some of the @dfn{minor modes} that are turned on
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 in the window's chosen buffer. For example, @samp{Fill} means that Auto
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
231 Fill mode is on. @code{Abbrev} means that Word Abbrev mode is on.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
232 @code{Ovwrt} means that Overwrite mode is on. @xref{Minor Modes}, for more
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
233 information. @samp{Narrow} means that the buffer being displayed has
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
234 editing restricted to only a portion of its text. This is not really a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
235 minor mode, but is like one. @xref{Narrowing}. @code{Def} means that a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
236 keyboard macro is being defined. @xref{Keyboard Macros}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
237
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
238 Some buffers display additional information after the minor modes. For
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239 example, Rmail buffers display the current message number and the total
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 number of messages. Compilation buffers and Shell mode display the status
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241 of the subprocess.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
242
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
243 If XEmacs is currently inside a recursive editing level, square
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
244 brackets (@samp{[@dots{}]}) appear around the parentheses that surround
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
245 the modes. If XEmacs is in one recursive editing level within another,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246 double square brackets appear, and so on. Since information on
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247 recursive editing applies to XEmacs in general and not to any one buffer,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
248 the square brackets appear in every mode line on the screen or not in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
249 any of them. @xref{Recursive Edit}.@refill
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
250
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
251 @findex display-time
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252 XEmacs can optionally display the time and system load in all mode lines.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
253 To enable this feature, type @kbd{M-x display-time}. The information added
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
254 to the mode line usually appears after the file name, before the mode names
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
255 and their parentheses. It looks like this:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
256
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
257 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
258 @var{hh}:@var{mm}pm @var{l.ll} [@var{d}]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
259 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
260
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
261 @noindent
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262 (Some fields may be missing if your operating system cannot support them.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263 @var{hh} and @var{mm} are the hour and minute, followed always by @samp{am}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
264 or @samp{pm}. @var{l.ll} is the average number of running processes in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
265 whole system recently. @var{d} is an approximate index of the ratio of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
266 disk activity to CPU activity for all users.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
267
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
268 The word @samp{Mail} appears after the load level if there is mail for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
269 you that you have not read yet.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
271 @vindex mode-line-inverse-video
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272 Customization note: the variable @code{mode-line-inverse-video}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 controls whether the mode line is displayed in inverse video (assuming
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
274 the terminal supports it); @code{nil} means no inverse video. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
275 default is @code{t}. For X frames, simply set the foreground and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
276 background colors appropriately.
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
277
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
278 @node GUI Components, XEmacs under X, Mode Line, Frame
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
279 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
280 @section GUI Components
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
281
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
282 When executed in a graphical windowing environment such as the X Window
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
283 System or Microsoft Windows, XEmacs displays several graphical user
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
284 interface components such as scrollbars, menubars, toolbars, and
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
285 gutters. By default there is a vertical scrollbar at the right of each
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
286 frame, and at the top of the frame there is a menubar, a toolbar, and a
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
287 gutter, in that order. Gutters can contain any of several widgets, but
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
288 the default configuration puts a set of "notebook tabs" which you can
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
289 use as a shortcut for selecting any of several related buffers in a
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
290 given frame. Operating the GUI components is "obvious": click on the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
291 menubar to pull down a menu, on a button in the toolbar to invoke a
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
292 function, and on a tab in the gutter to switch buffers.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
293
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
294 @menu
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
295 * Menubar Basics:: How XEmacs uses the menubar.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
296 * Scrollbar Basics:: How XEmacs uses scrollbars.
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
297 * Mode Line Basics:: How XEmacs uses modelines.
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
298 * Toolbar Basics:: How XEmacs uses toolbars.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
299 * Gutter Basics:: How XEmacs uses gutters.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
300 * Inhibiting:: What if you don't like GUI?
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
301 * Customizing:: Position, orientation, and appearance of GUI objects.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
302 @end menu
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
303
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
304 @node Menubar Basics, Scrollbar Basics, , GUI Components
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
305 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
306 @section The XEmacs Menubar
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
307
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
308 The XEmacs menubar is intended to be conformant to the usual conventions
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
309 for menubars, although conformance is not yet perfect. The menu at the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
310 extreme right is the @samp{Help} menu, which should always be
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
311 available. It provides access to all the XEmacs help facilities
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
312 available through @kbd{C-h}, as well as samples of various configuration
1389
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1362
diff changeset
313 files like @samp{~/.Xresources} and @samp{~/.emacs}. At the extreme left
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
314 is the @samp{Files} menu, which provides the usual file reading,
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
315 writing, and printing operations, as well as operations like revert
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
316 buffer from most recent save. The next menu from the left is the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
317 @samp{Edit} menu, which provides the @samp{Undo} operation as well as
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
318 cutting and pasting, searching, and keyboard macro definition and
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
319 execution.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
320
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
321 @c #### w3.el and VM should get cross-references here.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
322 XEmacs provides a very dynamic environment, and the Lisp language makes
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
323 for highly flexible applications. The menubar reflects this: many menus
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
324 (eg, the @samp{Buffers} menu, @pxref{Buffers Menu}) contain items
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
325 determined by the current state of XEmacs, and most major modes and many
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
326 minor modes add items to menus and even whole menus to the menubar. In
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
327 fact, some applications like w3.el and VM provide so many menus that
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
328 they define a whole new menubar and add a button that allows convenient
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
329 switching between the ``XEmacs menubar'' and the ``application
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
330 menubar''. Such applications normally bind themselves to a particular
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
331 frame, and this switching only takes place on frames where such an
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
332 application is active (ie, the current window of the frame is displaying
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
333 a buffer in the appropriate major mode).
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
334
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
335 Other menus which are typically available are the @samp{Options},
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
336 @samp{Tools}, @samp{Buffers}, @samp{Apps}, and @samp{Mule} menus. For
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
337 detailed descriptions of these menus, @ref{Pull-down Menus}. (In 21.2
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
338 XEmacsen, the @samp{Mule} menu will be moved under @samp{Options}.)
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
339
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
340 @node Scrollbar Basics, Mode Line Basics, Menubar Basics, GUI Components
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
341 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
342 @section XEmacs Scrollbars
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
343
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
344 XEmacs scrollbars provide the usual interface. Arrow buttons at either
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
345 end allow for line by line scrolling, including autorepeat. Clicking in
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
346 the scrollbar itself provides scrolling by windowsfull, depending on
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
347 which side of the slider is clicked. The slider itself may be dragged
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
348 for smooth scrolling.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
349
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
350 The position of the slider corresponds to the position of the window in
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
351 the buffer. In particular, the length of the slider is proportional to
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
352 the fraction of the buffer which appears in the window.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
353
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
354 The presence of the scrollbars is under control of the application or
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
355 may be customized by the user. By default a vertical scrollbar is
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
356 present in all windows (except the minibuffer), and there is no
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
357 horizontal scrollbar.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
358
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
359 @node Mode Line Basics, Toolbar Basics, Scrollbar Basics, GUI Components
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
360 @comment node-name, next, previous, up
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
361 @section XEmacs Mode Lines
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
362
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
363 When used in a windowing system, the XEmacs modelines can be dragged
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
364 vertically. The effect is to resize the windows above and below the
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
365 modeline (this includes the minibuffer window).
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
366
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
367 Additionally, a modeline can be dragged horizontally, in which case it
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
368 scrolls its own text. This behavior is not enabled by default because it
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
369 could be considered as disturbing when dragging vertically. When this
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
370 behavior is enabled, the modeline's text can be dragged either in the
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
371 same direction as the mouse, or in the opposite sense, making the
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
372 modeline act as a scrollbar for its own text.
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
373
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
374 You can select the behavior you want from the @samp{Display} submenu of
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
375 the @samp{Options} menu.
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
376
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
377 @node Toolbar Basics, Gutter Basics, Mode Line Basics, GUI Components
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
378 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
379 @section XEmacs Toolbars
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
380
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
381 XEmacs has a default toolbar which provides shortcuts for some of the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
382 commonly used operations (such as opening files) and applications (such
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
383 as the Info manual reader). Operations which require arguments will pop
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
384 up dialogs to get them.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
385
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
386 The position of the default toolbar can be customized. Also, several
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
387 toolbars may be present simultaneously (in different positions). VM,
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
388 for example, provides an application toolbar which shortcuts for
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
389 mail-specific operations like sending, saving, and deleting messages.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
390
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
391 @node Gutter Basics, Inhibiting, Toolbar Basics, GUI Components
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
392 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
393 @section XEmacs Gutters
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
394
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
395 Gutters are the most flexible of the GUI components described in this
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
396 section. In theory, the other GUI components could be implemented by
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
397 customizing a gutter, but in practice the other components were
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
398 introduced earlier and have their own special implementations. Gutters
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
399 tend to be more transient than the other components. Buffer tabs, for
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
400 example, change every time the selected buffer in the frame changes.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
401 And for progress gauges a gutter to contain the gauge is typically
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
402 created on the fly when needed, then destroyed when the operation whose
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
403 staus is being displayed is completed.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
404
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
405 Buffer tabs, having somewhat complex behavior, deserve a closer look.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
406 By default, a row of buffer tabs is displayed at the top of every frame.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
407 (The tabs could be placed in the bottom gutter, but would be oriented
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
408 the same way and look rather odd. The horizontal orientation makes
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
409 putting them in a side gutter utterly impractical.) The buffer
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
410 displayed in the current window of a frame can be changed to a specific
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
411 buffer by clicking [mouse-1] on the corresponding tab in the gutter.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
412
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
413 Each tab contains the name of its buffer. The tab for the current
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
414 buffer in each frame is displayed in raised relief. The list of buffers
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
415 chosen for display in the buffer tab row is derived by filtering the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
416 buffer list (like the @code{Buffers} menu). The list starts out with
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
417 all existing buffers, with more recently selected buffers coming earlier
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
418 in the list.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
419
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
420 Then "uninteresting" buffers, like internal XEmacs buffers, the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
421 @code{*Message Log*} buffer, and so on are deleted from the list. Next,
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
422 the frame's selected buffer is determined. Buffers with a different
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
423 major mode from the selected buffer are removed from the list. Finally,
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
424 if the list is too long, the least recently used buffers are deleted
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
425 from the list. By default up to 6 most recently used buffers with the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
426 same mode are displayed on tabs in the gutter.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
427
1362
cfe4bcb9bdd4 [xemacs-hg @ 2003-03-18 06:58:19 by stephent]
stephent
parents: 485
diff changeset
428 This behavior can be altered by customizing
cfe4bcb9bdd4 [xemacs-hg @ 2003-03-18 06:58:19 by stephent]
stephent
parents: 485
diff changeset
429 @code{buffers-tab-filter-functions}. Setting this variable to
cfe4bcb9bdd4 [xemacs-hg @ 2003-03-18 06:58:19 by stephent]
stephent
parents: 485
diff changeset
430 @code{nil} forces display of all buffers, up to
cfe4bcb9bdd4 [xemacs-hg @ 2003-03-18 06:58:19 by stephent]
stephent
parents: 485
diff changeset
431 @code{buffers-tab-max-size} (also customizable). More complex behavior
cfe4bcb9bdd4 [xemacs-hg @ 2003-03-18 06:58:19 by stephent]
stephent
parents: 485
diff changeset
432 may be available in 3rd party libraries. These, and some more
cfe4bcb9bdd4 [xemacs-hg @ 2003-03-18 06:58:19 by stephent]
stephent
parents: 485
diff changeset
433 rarely customized options, are in the @code{buffers-tab} Customize group.
cfe4bcb9bdd4 [xemacs-hg @ 2003-03-18 06:58:19 by stephent]
stephent
parents: 485
diff changeset
434
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
435 @node Inhibiting, Customizing, Gutter Basics, GUI Components
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
436 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
437 @section Inhibiting Display of GUI Components
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
438
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
439 Use of GUI facilities is a personal thing. Almost everyone agrees that
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
440 drawing via keyboard-based "turtle graphics" is acceptable to hardly
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
441 anyone if a mouse is available, but conversely emulating a keyboard with
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
442 a screenful of buttons is a painful experience. But between those
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
443 extremes the complete novice will require a fair amount of time before
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
444 toolbars and menus become dispensable, but many an "Ancien Haquer" sees
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
445 them as a complete waste of precious frame space that could be filled
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
446 with text.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
447
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
448 Display of all of the GUI components created by XEmacs can be inhibited
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
449 through the use of Customize. Customize can be accessed through
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
450 @samp{Options | Customize} in the menu bar, or via @kbd{M-x customize}.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
451 Then navigate through the Customize tree to @samp{Emacs | Environment}.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
452 Scrollbar and toolbar visibility is controlled via the @samp{Display}
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
453 group, options @samp{Scrollbars visible} and @samp{Toolbar visible}
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
454 respectively. Gutter visibility is controlled by group @samp{Gutter},
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
455 option @samp{Visible}.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
456
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
457 Or they can be controlled directly by @kbd{M-x customize-variable}, by
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
458 changing the values of the variables @code{menubar-visible-p},
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
459 @code{scrollbars-visible-p}, @code{toolbar-visible-p}, or
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
460 @code{gutter-buffers-tab-visible-p} respectively. (The strange form of
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
461 the last variable is due to the fact that gutters are often used to
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
462 display transient widgets like progress gauges, which you probably don't
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
463 want to inhibit. It is more likely that you want to inhibit the default
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
464 display of the buffers tab widget, which is what that variable controls.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
465 This interface is subject to change depending on developer experience
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
466 and user feedback.)
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
467
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
468 Control of frame configuration can controlled automatically according to
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
469 various parameters such as buffer or frame because these are
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
470 @dfn{specifiers} @ref{Specifiers, , , lispref}. Using these features
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
471 requires programming in Lisp; Customize is not yet that sophisticated.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
472 Also, components that appear in various positions and orientations can
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
473 have display suppressed according to position. @kbd{C-h a visible-p}
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
474 gives a list of variables which can be customized. E.g., to control the
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
475 visibility of specifically the left-side toolbar only, customize
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
476 @code{left-toolbar-visible-p}.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
477
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
478 @node Customizing, , Inhibiting, GUI Components
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
479 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
480 @section Changing the Position, Orientation, and Appearance of GUI Components
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
481
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
482 #### Not documented yet.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
483
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
484 @node XEmacs under X, XEmacs under MS Windows, GUI Components, Frame
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
485 @section Using XEmacs Under the X Window System
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
486 @comment node-name, next, previous, up
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
487
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
488 XEmacs can be used with the X Window System and a window manager like
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
489 MWM or TWM. In that case, the X window manager opens, closes, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
490 resizes XEmacs frames. You use the window manager's mouse gestures to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
491 perform the operations. Consult your window manager guide or reference
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
492 manual for information on manipulating X windows.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
493
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
494 When you are working under X, each X window (that is, each XEmacs frame)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
495 has a menu bar for mouse-controlled operations (@pxref{Pull-down Menus}).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
496
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
497 @cindex multi-frame XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
498 @findex make-frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
499 XEmacs under X is also a multi-frame XEmacs. You can use the @b{New
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
500 Frame} menu item from the @b{File} menu to create a new XEmacs frame in a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
501 new X window from the same process. The different frames will share the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
502 same buffer list, but you can look at different buffers in the different
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
503 frames.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
504
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
505 @findex find-file-other-frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
506 The function @code{find-file-other-frame} is just like @code{find-file},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
507 but creates a new frame to display the buffer in first. This is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
508 normally bound to @kbd{C-x 5 C-f}, and is what the @b{Open File, New
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
509 Frame} menu item does.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
510
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
511 @findex switch-to-buffer-other-frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
512 The function @code{switch-to-buffer-other-frame} is just like
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
513 @code{switch-to-buffer}, but creates a new frame to display the buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
514 in first. This is normally bound to @kbd{C-x 5 b}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
515
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
516 @vindex default-frame-alist
485
3fc0174a5541 [xemacs-hg @ 2001-04-26 20:03:58 by adrian]
adrian
parents: 454
diff changeset
517 @vindex default-frame-plist
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
518 You can specify a different default frame size other than the one provided.
485
3fc0174a5541 [xemacs-hg @ 2001-04-26 20:03:58 by adrian]
adrian
parents: 454
diff changeset
519 Use the variable @code{default-frame-plist}, which is a plist of default
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
520 values for frame creation other than the first one. These may be set in
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
521 your init file, like this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
522
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
523 @example
485
3fc0174a5541 [xemacs-hg @ 2001-04-26 20:03:58 by adrian]
adrian
parents: 454
diff changeset
524 (setq default-frame-plist '(width 80 height 55))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
525 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
526
485
3fc0174a5541 [xemacs-hg @ 2001-04-26 20:03:58 by adrian]
adrian
parents: 454
diff changeset
527 This variable has replaced @code{default-frame-alist}, which is
3fc0174a5541 [xemacs-hg @ 2001-04-26 20:03:58 by adrian]
adrian
parents: 454
diff changeset
528 considered obsolete.
3fc0174a5541 [xemacs-hg @ 2001-04-26 20:03:58 by adrian]
adrian
parents: 454
diff changeset
529
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
530 @vindex x-frame-defaults
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
531 For values specific to the first XEmacs frame, you must use X resources.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
532 The variable @code{x-frame-defaults} takes an alist of default frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
533 creation parameters for X window frames. These override what is
1389
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1362
diff changeset
534 specified in @file{~/.Xresources} but are overridden by the arguments to
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
535 the particular call to @code{x-create-frame}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
536
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
537 @vindex create-frame-hook
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
538 When you create a new frame, the variable @code{create-frame-hook}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
539 is called with one argument, the frame just created.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
540
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
541 If you want to close one or more of the X windows you created using
454
d7a9135ec789 Import from CVS: tag r21-2-42
cvs
parents: 446
diff changeset
542 @b{New Frame}, use the @b{Delete Frame} menu item from the @b{File} menu.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
543
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
544 @vindex frame-title-format
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
545 @vindex frame-icon-title-format
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
546 If you are working with multiple frames, some special information
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
547 applies:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
548 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
549 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
550 Two variables, @code{frame-title-format} and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
551 @code{frame-icon-title-format} determine the title of the frame and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
552 the title of the icon that results if you shrink the frame.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
553
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
554 @vindex auto-lower-frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
555 @vindex auto-raise-frame
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
556 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
557 The variables @code{auto-lower-frame} and @code{auto-raise-frame}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
558 position a frame. If true, @code{auto-lower-frame} lowers a frame to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
559 the bottom when it is no longer selected. If true,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
560 @code{auto-raise-frame} raises a frame to the top when it is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
561 selected. Under X, most ICCCM-compliant window managers will have
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
562 options to do this for you, but these variables are provided in case you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
563 are using a broken window manager.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
564
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
565 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
566 There is a new frame/modeline format directive, %S, which expands to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
567 the name of the current frame (a frame's name is distinct from its
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
568 title; the name is used for resource lookup, among other things, and the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
569 title is simply what appears above the window.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
570 @end itemize
446
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
571
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
572 @node XEmacs under MS Windows, , XEmacs under X, Frame
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
573 @section Using XEmacs Under Microsoft Windows
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
574 @comment node-name, next, previous, up
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
575
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
576 Use of XEmacs under MS Windows is not separately documented here, but
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
577 most operations available under the X Window System are also available
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
578 with MS Windows.
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
579
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
580 Where possible, native MS Windows GUI components and capabilities are
1ccc32a20af4 Import from CVS: tag r21-2-38
cvs
parents: 442
diff changeset
581 used in XEmacs.