annotate man/xemacs/frame.texi @ 4488:6b0000935adc

Spelling fixes.
author "Ville Skyttä <scop@xemacs.org>"
date Sat, 26 Jul 2008 13:50:27 +0300
parents 6355bae896e3
children
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
4488
6b0000935adc Spelling fixes.
"Ville Skyttä <scop@xemacs.org>"
parents: 1389
diff changeset
346 the scrollbar itself provides scrolling by a windowful, depending on
446
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
4488
6b0000935adc Spelling fixes.
"Ville Skyttä <scop@xemacs.org>"
parents: 1389
diff changeset
403 status is being displayed is completed.
446
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.