diff lispref/frames.texi @ 22252:40089afa2b1d

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Tue, 26 May 1998 18:56:56 +0000
parents d4ac295a98b3
children dfac7398266b
line wrap: on
line diff
--- a/lispref/frames.texi	Tue May 26 18:27:47 1998 +0000
+++ b/lispref/frames.texi	Tue May 26 18:56:56 1998 +0000
@@ -50,12 +50,15 @@
 * Pointer Shapes::              Specifying the shape of the mouse pointer.
 * Window System Selections::    Transferring text to and from other X clients.
 * Font Names::                  Looking up font names.
+* Fontsets::                    A fontset is a collection of fonts
+                                  for displaying various character sets.
 * Color Names::	                Getting the definitions of color names.
 * Resources::		        Getting resource values from the server.
 * Server Data::		        Getting info about the X server.
 @end menu
 
-  @xref{Display}, for related information.
+  @xref{Display}, for information about the related topic of 
+controlling Emacs redisplay.
 
 @node Creating Frames
 @section Creating Frames
@@ -92,11 +95,10 @@
 
 @node Multiple Displays
 @section Multiple Displays
-@cindex multiple displays
-@cindex multiple X terminals
+@cindex multiple X displays
 @cindex displays, multiple
 
-  A single Emacs can talk to more than one X Window display.
+  A single Emacs can talk to more than one X display.
 Initially, Emacs uses just one display---the one chosen with the
 @code{DISPLAY} environment variable or with the @samp{--display} option
 (@pxref{Initial Options,,, emacs, The GNU Emacs Manual}).  To connect to
@@ -104,16 +106,18 @@
 the @code{display} frame parameter when you create the frame.
 
   Emacs treats each X server as a separate terminal, giving each one its
-own selected frame and its own minibuffer windows.  A few Lisp variables
-have values local to the current terminal (that is, the terminal
-corresponding to the currently selected frame): these are
-@code{default-minibuffer-frame}, @code{defining-kbd-macro},
-@code{last-kbd-macro}, and @code{system-key-alist}.  These variables are
-always terminal-local and can never be buffer-local or frame-local
-(@pxref{Buffer-Local Variables}).
+own selected frame and its own minibuffer windows.
+
+  A few Lisp variables are @dfn{terminal-local}; that is, they have a
+separate binding for each terminal.  The binding in effect at any time
+is the one for the terminal that the currently selected frame belongs
+to.  These variables include @code{default-minibuffer-frame},
+@code{defining-kbd-macro}, @code{last-kbd-macro}, and
+@code{system-key-alist}.  They are always terminal-local, and can never
+be buffer-local (@pxref{Buffer-Local Variables}) or frame-local.
 
   A single X server can handle more than one screen.  A display name
-@samp{@var{host}.@var{server}.@var{screen}} has three parts; the last
+@samp{@var{host}:@var{server}.@var{screen}} has three parts; the last
 part specifies the screen number for a given server.  When you use two
 screens belonging to one server, Emacs knows by the similarity in their
 names that they share a single keyboard, and it treats them as a single
@@ -164,8 +168,8 @@
 uses.
 
 Frame parameters exist for the sake of window systems.  A terminal frame
-has a few parameters, mostly for compatibility's sake; only the height,
-width, @code{name}, @code{title}, @code{buffer-list} and
+has a few parameters, mostly for compatibility's sake; only the @code{height},
+@code{width}, @code{name}, @code{title}, @code{buffer-list} and
 @code{buffer-predicate} parameters do something special.
 
 @menu
@@ -418,9 +422,20 @@
 The color to use for the image of a character.  This is a string; the
 window system defines the meaningful color names.
 
+If you set the @code{foreground-color} frame parameter, you should
+call @code{frame-update-face-colors} to update faces accordingly.
+
 @item background-color
 The color to use for the background of characters.
 
+If you set the @code{background-color} frame parameter, you should
+call @code{frame-update-face-colors} to update faces accordingly.
+@xref{Face Functions}.
+
+@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 mouse-color
 The color for the mouse pointer.
 
@@ -430,6 +445,11 @@
 @item border-color
 The color for the border of the frame.
 
+@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 cursor-type
 The way to display the cursor.  The legitimate values are @code{bar},
 @code{box}, and @code{(bar . @var{width})}.  The symbol @code{box}
@@ -470,6 +490,10 @@
 
 @node Size and Position
 @subsection Frame Size And Position
+@cindex size of frame
+@cindex screen size
+@cindex frame size
+@cindex resize frame
 
   You can read or change the size and position of a frame using the
 frame parameters @code{left}, @code{top}, @code{height}, and
@@ -481,15 +505,28 @@
 @defun set-frame-position frame left top
 This function sets the position of the top left corner of @var{frame} to
 @var{left} and @var{top}.  These arguments are measured in pixels, and
-count from the top left corner of the screen.  Negative parameter values
-count up or rightward from the top left corner of the screen.
+normally count from the top left corner of the screen.
+
+Negative parameter values position the bottom edge of the window up from
+the bottom edge of the screen, or the right window edge to the left of
+the right edge of the screen.  It would probably be better if the values
+were always counted from the left and top, so that negative arguments
+would position the frame partly off the top or left edge of the screen,
+but it seems inadvisable to change that now.
 @end defun
 
 @defun frame-height &optional frame
 @defunx frame-width &optional frame
 These functions return the height and width of @var{frame}, measured in
-characters.  If you don't supply @var{frame}, they use the selected
-frame.
+lines and columns.  If you don't supply @var{frame}, they use the
+selected frame.
+@end defun
+
+@defun screen-height
+@defunx screen-width
+These functions are old aliases for @code{frame-height} and
+@code{frame-width}.  When you are using a non-window terminal, the size
+of the frame is normally the same as the size of the terminal screen.
 @end defun
 
 @defun frame-pixel-height &optional frame
@@ -515,15 +552,38 @@
 them to units of characters.
 @end defun
 
+@defun set-frame-height frame lines &optional pretend
+This function resizes @var{frame} to a height of @var{lines} lines.  The
+sizes of existing windows in @var{frame} are altered proportionally to
+fit.
+
+If @var{pretend} is non-@code{nil}, then Emacs displays @var{lines}
+lines of output in @var{frame}, but does not change its value for the
+actual height of the frame.  This is only useful for a terminal frame.
+Using a smaller height than the terminal actually implements may be
+useful to reproduce behavior observed on a smaller screen, or if the
+terminal malfunctions when using its whole screen.  Setting the frame
+height ``for real'' does not always work, because knowing the correct
+actual size may be necessary for correct cursor positioning on a
+terminal frame.
+@end defun
+
+@defun set-frame-width frame width &optional pretend
+This function sets the width of @var{frame}, measured in characters.
+The argument @var{pretend} has the same meaning as in
+@code{set-frame-height}.
+@end defun
+
+@findex set-screen-height
+@findex set-screen-width
   The old-fashioned functions @code{set-screen-height} and
 @code{set-screen-width}, which were used to specify the height and width
 of the screen in Emacs versions that did not support multiple frames,
-are still usable.  They apply to the selected frame.  @xref{Screen
-Size}.
+are still usable.  They apply to the selected frame.
 
 @defun x-parse-geometry geom
 @cindex geometry specification
-The function @code{x-parse-geometry} converts a standard X Windows
+The function @code{x-parse-geometry} converts a standard X window
 geometry string to an alist that you can use as part of the argument to
 @code{make-frame}.
 
@@ -562,17 +622,11 @@
 
 @example
 (x-parse-geometry "35x70+0-0")
-     @result{} ((width . 35) (height . 70)
-         (left . 0) (top - 0))
+     @result{} ((height . 70) (width . 35)
+         (top - 0) (left . 0))
 @end example
 @end defun
 
-@ignore
-New functions @code{set-frame-height} and @code{set-frame-width} set the
-size of a specified frame.  The frame is the first argument; the size is
-the second.
-@end ignore
-
 @node Frame Titles
 @section Frame Titles
 
@@ -768,8 +822,7 @@
 to switch frames, and the change lasts until overridden by a subsequent
 call to @code{switch-frame}.  Each terminal screen except for the
 initial one has a number, and the number of the selected frame appears
-in the mode line after the word @samp{Emacs} (@pxref{Mode Line
-Variables}).
+in the mode line before the buffer name (@pxref{Mode Line Variables}).
 
 @c ??? This is not yet implemented properly.
 @defun select-frame frame
@@ -1283,7 +1336,7 @@
 when you specify the ``font'' for a frame or a face.  Here is
 information about defining a fontset under Lisp program control.
 
-@defun create-fontset-from-fontset-spec fontset-spec &optional style noerror
+@defun create-fontset-from-fontset-spec fontset-spec &optional style-variant-p noerror
 This function defines a new fontset according to the specification
 string @var{fontset-spec}.  The string should have this format:
 
@@ -1298,22 +1351,23 @@
 a standard X font name, except that the last two fields should be
 @samp{fontset-@var{alias}}.
 
-Each fontset has two names, one long and one short.  The long name is
+The new fontset has two names, one long and one short.  The long name is
 @var{fontpattern} in its entirety.  The short name is
 @samp{fontset-@var{alias}}.  You can refer to the fontset by either
 name.  If a fontset with the same name already exists, an error is
 signaled, unless @var{noerror} is non-@code{nil}, in which case this
 function does nothing.
 
+If optional argument @var{style-variant-p} is non-@code{nil}, that says
+to create bold, italic and bold-italic variants of the fontset as well.
+These variant fontsets do not have a short name, only a long one, which
+is made by altering @var{fontpattern} to indicate the bold or italic
+status.
+
 The specification string also says which fonts to use in the fontset.
 See below for the details.
 @end defun
 
-  If optional argument @var{style} is specified, it specifies a way to
-modify the fontset.  It should be one of @code{bold}, @code{italic}, and
-@code{bold-italic}, and it says to find the bold, italic or bold-italic
-version of each font if possible.
-
   The construct @samp{@var{charset}:@var{font}} specifies which font to
 use (in this fontset) for one particular character set.  Here,
 @var{charset} is the name of a character set, and @var{font} is the font
@@ -1354,7 +1408,7 @@
 
   You may not have any Chinese font matching the above font
 specification.  Most X distributions include only Chinese fonts that
-have @samp{song ti} or @samp{fangsong ti} in @var{family} field.  In
+have @samp{song ti} or @samp{fangsong ti} in the @var{family} field.  In
 such a case, @samp{Fontset-@var{n}} can be specified as below:
 
 @smallexample
@@ -1415,7 +1469,7 @@
 @end example
 
 The color values are returned for @var{frame}'s display.  If @var{frame}
-is omitted or @code{nil}, the information is return for the selected
+is omitted or @code{nil}, the information is returned for the selected
 frame's display.
 @end defun