First cut. CC'd to XEmacs Beta to get opinions on the proposed
organization.
_Extremely_ incomplete. But I'll be out of town for several days.
Very verbose ChangeLog:
2000-02-29 Stephen J. Turnbull <stephen(a)xemacs.org>
* xemacs/frame.texi (GUI components): New node.
(XEmacs under MS Windows) New node, placeholder.
(GUI components | Menubar Basics): New node, placeholder.
(GUI components | Scrollbar Basics): New node, placeholder.
(GUI components | Toolbar Basics): New node, placeholder.
(GUI components | Gutter Basics): New node.
(GUI components | Inhibiting): New node.
(GUI components | Customizing): New node, placeholder.
Index: man/xemacs/frame.texi
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/man/xemacs/frame.texi,v
retrieving revision 1.2.2.1
diff -u -u -r1.2.2.1 frame.texi
--- frame.texi 2000/02/24 13:44:39 1.2.2.1
+++ frame.texi 2000/02/29 08:56:28
@@ -80,8 +80,11 @@
@menu
* Point:: The place in the text where editing commands operate.
* Echo Area:: Short messages appear at the bottom of the frame.
* Mode Line:: Interpreting the mode line.
+* GUI Components:: Menubar, toolbars, gutters.
* XEmacs under X:: Some information on using XEmacs under the X
Window System.
+* XEmacs under MS Windows:: Some information on using XEmacs under
+ Microsoft Windows.
@end menu
@node Point, Echo Area, Frame, Frame
@@ -169,7 +172,7 @@
typing @kbd{C-g}. @xref{Minibuffer}.
@end itemize
-@node Mode Line, XEmacs under X, Echo Area, Frame
+@node Mode Line, GUI Components, Echo Area, Frame
@comment node-name, next, previous, up
@section The Mode Line
@cindex mode line
@@ -272,7 +275,130 @@
default is @code{t}. For X frames, simply set the foreground and
background colors appropriately.
-@node XEmacs under X, , Mode Line, Frame
+@node GUI Components, XEmacs under X, Mode Line, Frame
+@comment node-name, next, previous, up
+@section GUI Components
+
+When executed in a graphical windowing environment such as the X Window
+System or Microsoft Windows, XEmacs displays several graphical user
+interface components such as scrollbars, menubars, toolbars, and
+gutters. By default there is a vertical scrollbar at the right of each
+frame, and at the top of the frame there is a menubar, a toolbar, and a
+gutter, in that order. Gutters can contain any of several widgets, but
+the default configuration puts a set of "notebook tabs" which you can
+use as a shortcut for selecting any of several related buffers in a
+given frame. Operating the GUI components is "obvious": click on the
+menubar to pull down a menu, on a button in the toolbar to invoke a
+function, and on a tab in the gutter to switch buffers.
+
+@menu
+* Menubar Basics:: How XEmacs uses the menubar.
+* Scrollbar Basics:: How XEmacs uses scrollbars.
+* Toolbar Basics:: How XEmacs uses toolbars.
+* Gutter Basics:: How XEmacs uses gutters.
+* Inhibiting:: What if you don't like GUI?
+* Customizing:: Position, orientation, and appearance of GUI objects.
+@end menu
+
+@node Menubar Basics, Scrollbar Basics, , GUI Components
+@comment node-name, next, previous, up
+@section The XEmacs Menubar
+
+ #### Not documented yet.
+
+@node Scrollbar Basics, Toolbar Basics, Menubar Basics, GUI Components
+@comment node-name, next, previous, up
+@section XEmacs Scrollbars
+
+ #### Not documented yet.
+
+@node Toolbar Basics, Gutter Basics, Scrollbar Basics, GUI Components
+@comment node-name, next, previous, up
+@section XEmacs Toolbars
+
+ #### Not documented yet.
+
+@node Gutter Basics, Inhibiting, Toolbar Basics, GUI Components
+@comment node-name, next, previous, up
+@section XEmacs Gutters
+
+Gutters are the most flexible of the GUI components described in this
+section. In theory, the other GUI components could be implemented by
+customizing a gutter, but in practice the other components were
+introduced earlier and have their own special implementations. Gutters
+tend to be more transient than the other components. Buffer tabs, for
+example, change every time the selected buffer in the frame changes.
+And for progress gauges a gutter to contain the gauge is typically
+created on the fly when needed, then destroyed when the operation whose
+staus is being displayed is completed.
+
+Buffer tabs, having somewhat complex behavior, deserve a closer look.
+By default, a row of buffer tabs is displayed at the top of every frame.
+(The tabs could be placed in the bottom gutter, but would be oriented
+the same way and look rather odd. The horizontal orientation makes
+putting them in a side gutter utterly impractical.) The buffer
+displayed in the current window of a frame can be changed to a specific
+buffer by clicking [mouse-1] on the corresponding tab in the gutter.
+
+Each tab contains the name of its buffer. The tab for the current
+buffer in each frame is displayed in raised relief. The list of buffers
+chosen for display in the buffer tab row is derived by filtering the
+buffer list (like the @code{Buffers} menu). The list starts out with
+all existing buffers, with more recently selected buffers coming earlier
+in the list.
+
+Then "uninteresting" buffers, like internal XEmacs buffers, the
+@code{*Message Log*} buffer, and so on are deleted from the list. Next,
+the frame's selected buffer is determined. Buffers with a different
+major mode from the selected buffer are removed from the list. Finally,
+if the list is too long, the least recently used buffers are deleted
+from the list. By default up to 6 most recently used buffers with the
+same mode are displayed on tabs in the gutter.
+
+@node Inhibiting, Customizing, Gutter Basics, GUI Components
+@comment node-name, next, previous, up
+@section Inhibiting Display of GUI Components
+
+Use of GUI facilities is a personal thing. Almost everyone agrees that
+drawing via keyboard-based "turtle graphics" is acceptable to hardly
+anyone if a mouse is available, but conversely emulating a keyboard with
+a screenful of buttons is a painful experience. But between those
+extremes the complete novice will require a fair amount of time before
+toolbars and menus become dispensable, but many an "Ancien Haquer" sees
+them as a complete waste of precious frame space that could be filled
+with text.
+
+Display of all of the GUI components created by XEmacs can be inhibited
+through the use of Customize. Customize can be accessed through
+@samp{Options | Customize} in the menu bar, or via @kbd{M-x customize}.
+Then navigate through the Customize tree to @samp{Emacs | Environment}.
+Scrollbar and toolbar visibility is controlled via the @samp{Display}
+group, options @samp{Scrollbars visible} and @samp{Toolbar visible}
+respectively. Gutter visibility is controlled by group @samp{Gutter},
+option @samp{Visible}.
+
+Or they can be controlled directly by @kbd{M-x customize-variable}, by
+changing the values of the variables @code{menubar-visible-p},
+@code{scrollbars-visible-p}, @code{toolbar-visible-p}, or
+@code{gutter-visible-p} respectively.
+
+Control of frame configuration can controlled automatically according to
+various parameters such as buffer or frame because these are
+@dfn{specifiers} @ref{Specifiers, , , lispref}. Using these features
+requires programming in Lisp; Customize is not yet that sophisticated.
+Also, components that appear in various positions and orientations can
+have display suppressed according to position. @kbd{C-h a visible-p}
+gives a list of variables which can be customized. E.g., to control the
+visibility of specifically the left-side toolbar only, customize
+@code{left-toolbar-visible-p}.
+
+@node Customizing, , Inhibiting, GUI Components
+@comment node-name, next, previous, up
+@section Changing the Position, Orientation, and Appearance of GUI Components
+
+ #### Not documented yet.
+
+@node XEmacs under X, XEmacs under MS Windows, GUI Components, Frame
@section Using XEmacs Under the X Window System
@comment node-name, next, previous, up
@@ -355,3 +481,9 @@
title; the name is used for resource lookup, among other things, and the
title is simply what appears above the window.)
@end itemize
+
+@node XEmacs under MS Windows, , XEmacs under X, Frame
+@section Using XEmacs Under Microsoft Windows
+@comment node-name, next, previous, up
+
+ #### Not documented yet.
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."