frame.texi 27 KB

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