changeset 64873:a8651fc70979

(Window Frame Parameters): Node split up. (Basic Parameters, Position Parameters, Size Parameters) (Layout Parameters, Buffer Parameters, Management Parameters) (Cursor Parameters, Color Parameters): New subnodes.
author Richard M. Stallman <rms@gnu.org>
date Tue, 09 Aug 2005 23:29:57 +0000
parents 0f065023e506
children aa029c72e536
files lispref/frames.texi
diffstat 1 files changed, 193 insertions(+), 118 deletions(-) [+]
line wrap: on
line diff
--- a/lispref/frames.texi	Tue Aug 09 22:24:18 2005 +0000
+++ b/lispref/frames.texi	Tue Aug 09 23:29:57 2005 +0000
@@ -310,14 +310,31 @@
 @node Window Frame Parameters
 @subsection Window Frame Parameters
 
-  Just what parameters a frame has depends on what display mechanism it
-uses.  Here is a table of the parameters that have special meanings in a
-window frame; of these, @code{name}, @code{title}, @code{height},
-@code{width}, @code{buffer-list} and @code{buffer-predicate} provide
-meaningful information in terminal frames, and @code{tty-color-mode}
-is meaningful @emph{only} in terminal frames.  Frame parameter whose
-values measured in pixels, when used on text-only terminals, count
-characters or lines instead.
+  Just what parameters a frame has depends on what display mechanism
+it uses.  This section describes the parameters that have special
+meanings on some or all kinds of terminals.  Of these, @code{name},
+@code{title}, @code{height}, @code{width}, @code{buffer-list} and
+@code{buffer-predicate} provide meaningful information in terminal
+frames, and @code{tty-color-mode} is meaningful @emph{only} in
+terminal frames.
+
+@menu
+* Basic Parameters::            Parameters that are fundamental.
+* Position Parameters::         The position of the frame on the screen.
+* Size Parameters::             Frame's size.
+* Layout Parameters::           Size of parts of the frame, and
+                                  enabling or disabling some parts.
+* Buffer Parameters::           Which buffers have been or should be shown.
+* Management Parameters::       Communicating with the window manager.
+* Cursor Parameters::           Controlling the cursor appearance.
+* Color Parameters::            Colors of various parts of the frame.
+@end menu
+
+@node Basic Parameters
+@subsubsection Basic Parameters
+
+  These frame parameters give the most basic information about the
+frame.  @code{title} and @code{name} are meaningful on all terminals.
 
 @table @code
 @item display
@@ -325,6 +342,11 @@
 form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the
 @code{DISPLAY} environment variable.
 
+@item display-type
+This parameter describes the range of possible colors that can be used
+in this frame.  Its value is @code{color}, @code{grayscale} or
+@code{mono}.
+
 @item title
 If a frame has a non-@code{nil} title, it appears in the window system's
 border for the frame, and also in the mode line of windows in that frame
@@ -342,7 +364,15 @@
 If you specify the frame name explicitly when you create the frame, the
 name is also used (instead of the name of the Emacs executable) when
 looking up X resources for the frame.
+@end table
 
+@node Position Parameters
+@subsubsection Position Parameters
+
+  Position parameters' values are normally measured in pixels, but on
+text-only terminals they count characters or lines instead.
+
+@table @code
 @item left
 The screen position of the left edge, in pixels, with respect to the
 left edge of the screen.  The value may be a positive number @var{pos},
@@ -397,7 +427,15 @@
 value for this parameter if the values of the @code{left} and @code{top}
 parameters represent the user's stated preference; otherwise, use
 @code{nil}.
+@end table
 
+@node Size Parameters
+@subsubsection Size Parameters
+
+  Size parameters' values are normally measured in pixels, but on
+text-only terminals they count characters or lines instead.
+
+@table @code
 @item height
 The height of the frame contents, in characters.  (To get the height in
 pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
@@ -417,14 +455,76 @@
 screen.  The value @code{fullheight} specifies that height shall be the
 size of the screen.  The value @code{fullboth} specifies that both the
 width and the height shall be set to the size of the screen.
+@end table
 
-@item window-id
-The number of the window-system window used by the frame
-to contain the actual Emacs windows.
+@node Layout Parameters
+@subsubsection Layout Parameters
+
+  These frame parameters enable or disable various parts of the
+frame, or control their sizes.
+
+@table @code
+@item border-width
+The width in pixels of the window border.
+
+@item internal-border-width
+The distance in pixels between text and border.
+
+@item vertical-scroll-bars
+Whether the frame has scroll bars for vertical scrolling, and which side
+of the frame they should be on.  The possible values are @code{left},
+@code{right}, and @code{nil} for no scroll bars.
+
+@ignore
+@item horizontal-scroll-bars
+Whether the frame has scroll bars for horizontal scrolling
+(non-@code{nil} means yes).  Horizontal scroll bars are not currently
+implemented.
+@end ignore
+
+@item scroll-bar-width
+The width of vertical scroll bars, in pixels, or @code{nil} meaning to
+use the default width.
 
-@item outer-window-id
-The number of the outermost window-system window used for the whole frame.
+@item left-fringe
+@itemx right-fringe
+The default width of the left and right fringes of windows in this
+frame (@pxref{Fringes}).  If either of these is zero, that effectively
+removes the corresponding fringe.  A value of @code{nil} stands for
+the standard fringe width, which is the width needed to display the
+fringe bitmaps.
+
+The combined fringe widths must add up to an integral number of
+columns, so the actual default fringe widths for the frame may be
+larger than the specified values.  The extra width needed to reach an
+acceptable total is distributed evenly between the left and right
+fringe.  However, you can force one fringe or the other to a precise
+width by specifying that width as a negative integer.  If both widths are
+negative, only the left fringe gets the specified width.
 
+@item menu-bar-lines
+The number of lines to allocate at the top of the frame for a menu
+bar.  The default is 1.  A value of @code{nil} means don't display a
+menu bar.  @xref{Menu Bar}.  (The X toolkit and GTK allow at most one
+menu bar line; they treat larger values as 1.)
+
+@item tool-bar-lines
+The number of lines to use for the tool bar.  A value of @code{nil}
+means don't display a tool bar.  (GTK allows at most one tool bar line;
+it treats larger values as 1.)
+
+@item line-spacing
+Additional space to leave below each text line, in pixels (a positive
+integer)
+@end table
+
+@node Buffer Parameters
+@subsubsection Buffer Parameters
+
+  These frame parameters, meaningful on all kinds of terminals, deal
+with which buffers have been, or should, be displayed in the frame.
+
+@table @code
 @item minibuffer
 Whether this frame has its own minibuffer.  The value @code{t} means
 yes, @code{nil} means no, @code{only} means this frame is just a
@@ -443,26 +543,28 @@
 A list of buffers that have been selected in this frame,
 ordered most-recently-selected first.
 
+@item unsplittable
+If non-@code{nil}, this frame's window is never split automatically.
+@end table
+
+@node Management Parameters
+@subsubsection Window Management Parameters
+ 
+  These frame parameters, meaningful only on window system displays,
+interact with the window manager.
+
+@table @code
+@item visibility
+The state of visibility of the frame.  There are three possibilities:
+@code{nil} for invisible, @code{t} for visible, and @code{icon} for
+iconified.  @xref{Visibility of Frames}.
+
 @item auto-raise
 Whether selecting the frame raises it (non-@code{nil} means yes).
 
 @item auto-lower
 Whether deselecting the frame lowers it (non-@code{nil} means yes).
 
-@item vertical-scroll-bars
-Whether the frame has scroll bars for vertical scrolling, and which side
-of the frame they should be on.  The possible values are @code{left},
-@code{right}, and @code{nil} for no scroll bars.
-
-@item horizontal-scroll-bars
-Whether the frame has scroll bars for horizontal scrolling
-(non-@code{nil} means yes).  (Horizontal scroll bars are not currently
-implemented.)
-
-@item scroll-bar-width
-The width of the vertical scroll bar, in pixels,
-or @code{nil} meaning to use the default width.
-
 @item icon-type
 The type of icon to use for this frame when it is iconified.  If the
 value is a string, that specifies a file containing a bitmap to use.
@@ -473,29 +575,35 @@
 The name to use in the icon for this frame, when and if the icon
 appears.  If this is @code{nil}, the frame's title is used.
 
-@item background-mode
-This parameter is either @code{dark} or @code{light}, according
-to whether the background color is a light one or a dark one.
+@item window-id
+The number of the window-system window used by the frame
+to contain the actual Emacs windows.
+
+@item outer-window-id
+The number of the outermost window-system window used for the whole frame.
+
+@item wait-for-wm
+If non-@code{nil}, tell Xt to wait for the window manager to confirm
+geometry changes.  Some window managers, including versions of Fvwm2
+and KDE, fail to confirm, so Xt hangs.  Set this to @code{nil} to
+prevent hanging with those window managers.
 
-@item tty-color-mode
-@cindex standard colors for character terminals
-This parameter overrides the terminal's color support as given by the
-system's terminal capabilities database in that this parameter's value
-specifies the color mode to use in terminal frames.  The value can be
-either a symbol or a number.  A number specifies the number of colors
-to use (and, indirectly, what commands to issue to produce each
-color).  For example, @code{(tty-color-mode . 8)} forces Emacs to use
-the ANSI escape sequences for 8 standard text colors; and a value of
--1 means Emacs should turn off color support.  If the parameter's
-value is a symbol, that symbol is looked up in the alist
-@code{tty-color-mode-alist}, and if found, the associated number is
-used as the color support mode.
+@ignore
+@item parent-id
+@c ??? Not yet working.
+The X window number of the window that should be the parent of this one.
+Specifying this lets you create an Emacs window inside some other
+application's window.  (It is not certain this will be implemented; try
+it and see if it works.)
+@end ignore
+@end table
 
-@item display-type
-This parameter describes the range of possible colors that can be used
-in this frame.  Its value is @code{color}, @code{grayscale} or
-@code{mono}.
+@node Cursor Parameters
+@subsubsection Cursor Parameters
 
+  This frame parameter controls the way the cursor looks.
+
+@table @code
 @item cursor-type
 How to display the cursor.  Legitimate values are:
 
@@ -515,52 +623,51 @@
 @item (hbar . @var{height})
 Display a horizontal bar @var{height} pixels high.
 @end table
+@end table
 
 @vindex cursor-type
 The buffer-local variable @code{cursor-type} overrides the value of
 the @code{cursor-type} frame parameter, but if it is @code{t}, that
 means to use the cursor specified for the frame.
 
-@item border-width
-The width in pixels of the window border.
-
-@item internal-border-width
-The distance in pixels between text and border.
+@defvar blink-cursor-alist
+This variable specifies how to blink the cursor.  Each element has the
+form @code{(@var{on-state} . @var{off-state})}.  Whenever the cursor
+type equals @var{on-state} (comparing using @code{equal}), the
+corresponding @var{off-state} specifies what the cursor looks like
+when it blinks ``off''.  Both @var{on-state} and @var{off-state}
+should be suitable values for the @code{cursor-type} frame parameter.
 
-@item left-fringe
-@itemx right-fringe
-The default width of the left and right fringes of windows in this
-frame (@pxref{Fringes}).  If either of these is zero, that effectively
-removes the corresponding fringe.  A value of @code{nil} stands for
-the standard fringe width, which is the width needed to display the
-fringe bitmaps.
+There are various defaults for how to blink each type of cursor, if
+the type is not mentioned as an @var{on-state} here.  Changes in this
+variable do not take effect immediately, because the variable is
+examined only when you specify the @code{cursor-type} parameter.
+@end defvar
+
+@node Color Parameters
+@subsubsection Color Parameters
+
+  These frame parameters control the use of colors.
 
-The combined fringe widths must add up to an integral number of
-columns, so the actual default fringe widths for the frame may be
-larger than the specified values.  The extra width needed to reach an
-acceptable total is distributed evenly between the left and right
-fringe.  However, you can force one fringe or the other to a precise
-width by specifying that width as a negative integer.  If both widths are
-negative, only the left fringe gets the specified width.
-
-@item unsplittable
-If non-@code{nil}, this frame's window is never split automatically.
+@table @code
+@item background-mode
+This parameter is either @code{dark} or @code{light}, according
+to whether the background color is a light one or a dark one.
 
-@item visibility
-The state of visibility of the frame.  There are three possibilities:
-@code{nil} for invisible, @code{t} for visible, and @code{icon} for
-iconified.  @xref{Visibility of Frames}.
+@item tty-color-mode
+@cindex standard colors for character terminals
+This parameter overrides the terminal's color support as given by the
+system's terminal capabilities database in that this parameter's value
+specifies the color mode to use in terminal frames.  The value can be
+either a symbol or a number.  A number specifies the number of colors
+to use (and, indirectly, what commands to issue to produce each
+color).  For example, @code{(tty-color-mode . 8)} specifies use of the
+ANSI escape sequences for 8 standard text colors.  A value of -1 turns
+off color support.
 
-@item menu-bar-lines
-The number of lines to allocate at the top of the frame for a menu
-bar.  The default is 1.  A value of @code{nil} means don't display a
-menu bar.  @xref{Menu Bar}.  (The X toolkit and GTK allow at most one
-menu bar line; they treat larger values as 1.)
-
-@item tool-bar-lines
-The number of lines to use for the tool bar.  A value of @code{nil}
-means don't display a tool bar.  (GTK allows at most one tool bar line;
-it treats larger values as 1.)
+If the parameter's value is a symbol, it specifies a number through
+the value of @code{tty-color-mode-alist}, and the associated number is
+used instead.
 
 @item screen-gamma
 @cindex gamma correction
@@ -580,40 +687,8 @@
 @code{screen-gamma} value smaller than 2.2.  This requests correction
 that makes colors darker.  A screen gamma value of 1.5 may give good
 results for LCD color displays.
-
-@item line-spacing
-Additional space put below text lines, in pixels (a positive integer)
-
-@item wait-for-wm
-If non-@code{nil}, tell Xt to wait for the window manager to confirm
-geometry changes.  Some window managers, including versions of Fvwm2
-and KDE, fail to confirm, so Xt hangs.  Set this to @code{nil} to
-prevent hanging with those window managers.
-
-@ignore
-@item parent-id
-@c ??? Not yet working.
-The X window number of the window that should be the parent of this one.
-Specifying this lets you create an Emacs window inside some other
-application's window.  (It is not certain this will be implemented; try
-it and see if it works.)
-@end ignore
 @end table
 
-@defvar blink-cursor-alist
-This variable specifies how to blink the cursor.  Each element has the
-form @code{(@var{on-state} . @var{off-state})}.  Whenever the cursor
-type equals @var{on-state} (comparing using @code{equal}), Emacs uses
-@var{off-state} to specify what the cursor looks like when it blinks
-``off''.  Both @var{on-state} and @var{off-state} should be suitable
-values for the @code{cursor-type} frame parameter.
-
-There are various defaults for how to blink each type of cursor,
-if the type is not mentioned as an @var{on-state} here.  Changes
-in this variable do not take effect immediately, because the variable
-is examined only when you specify a cursor type for a frame.
-@end defvar
-
 These frame parameters are semi-obsolete in that they are automatically
 equivalent to particular face attributes of particular faces.
 
@@ -1150,7 +1225,7 @@
 @end defun
 
   The visibility status of a frame is also available as a frame
-parameter.  You can read or change it as such.  @xref{Window Frame
+parameter.  You can read or change it as such.  @xref{Management
 Parameters}.
 
   The user can iconify and deiconify frames with the window manager.
@@ -1195,7 +1270,7 @@
 
 You can also enable auto-raise (raising automatically when a frame is
 selected) or auto-lower (lowering automatically when it is deselected)
-for any frame using frame parameters.  @xref{Window Frame Parameters}.
+for any frame using frame parameters.  @xref{Management Parameters}.
 
 @node Frame Configurations
 @section Frame Configurations
@@ -1504,7 +1579,7 @@
   These variables affect newly created frames.  They do not normally
 affect existing frames; however, if you set the mouse color of a frame,
 that also updates its pointer shapes based on the current values of
-these variables.  @xref{Window Frame Parameters}.
+these variables.  @xref{Color Parameters}.
 
   The values you can use, to specify either of these pointer shapes, are
 defined in the file @file{lisp/term/x-win.el}.  Use @kbd{M-x apropos