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