changeset 7174:0313f520a4d9

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Thu, 28 Apr 1994 18:52:49 +0000
parents b6a358a4bdfb
children 5fa65268508b
files lispref/frames.texi
diffstat 1 files changed, 57 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/lispref/frames.texi	Thu Apr 28 18:51:35 1994 +0000
+++ b/lispref/frames.texi	Thu Apr 28 18:52:49 1994 +0000
@@ -108,7 +108,7 @@
 * Parameter Access::       How to change a frame's parameters.
 * Initial Parameters::	   Specifying frame parameters when you make a frame.
 * X Frame Parameters::     Individual parameters documented.
-* Size And Position::      Changing the size and position of a frame.
+* Size and Position::      Changing the size and position of a frame.
 @end menu
 
 @node Parameter Access
@@ -174,10 +174,12 @@
 The screen position of the top edge, in pixels.
 
 @item height
-The height of the frame contents, in pixels.
+The height of the frame contents, in characters.  (To get the height in
+pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
 
 @item width
-The width of the frame contents, in pixels.
+The width of the frame contents, in characters.  (To get the height in
+pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.)
 
 @item window-id
 The number of the X window for the frame.
@@ -260,7 +262,7 @@
 it and see if it works.)
 @end table
 
-@node Size And Position
+@node Size and Position
 @subsection Frame Size And Position
 
   You can read or change the size and position of a frame using the
@@ -300,12 +302,12 @@
 @end defun
 
 @defun set-frame-size frame cols rows
-This function sets the size of @var{frame}, measured in
-characters; @var{cols} and @var{rows} specify the new width and height.
+This function sets the size of @var{frame}, measured in characters;
+@var{cols} and @var{rows} specify the new width and height.
 
-To set the size with values measured in pixels, use
-@code{modify-frame-parameters} to set the @code{width} and @code{height}
-parameters.  @xref{X Frame Parameters}.
+To set the size based on values measured in pixels, use
+@code{frame-char-height} and @code{frame-char-width} to convert
+them to units of characters.
 @end defun
 
   The old-fashioned functions @code{set-screen-height} and
@@ -402,19 +404,24 @@
 @node Frames and Windows
 @section Frames and Windows
 
-All the non-minibuffer windows in a frame are arranged in a tree of
-subdivisions; the root of this tree is available via the function
-@code{frame-root-window}.  Each window is part of one and
-only one frame; you can get the frame with @code{window-frame}.
-
-@defun frame-root-window frame
-This returns the root window of frame @var{frame}.
-@end defun
+  Each window is part of one and only one frame; you can get the frame
+with @code{window-frame}.
 
 @defun window-frame window
 This function returns the frame that @var{window} is on.
 @end defun
 
+  All the non-minibuffer windows in a frame are arranged in a cyclic
+order.  The order runs from the frame's top window, which is at the
+upper left corner, down and to the right, until it reaches the window at
+the lower right corner (always the minibuffer window, if the frame has
+one), and then it moves back to the top.
+
+@defun frame-top-window frame
+This returns the topmost, leftmost window of frame @var{frame}.
+This is a window
+@end defun
+
 At any time, exactly one window on any frame is @dfn{selected within the
 frame}.  The significance of this designation is that selecting the
 frame also selects this window.  You can get the frame's current
@@ -689,21 +696,26 @@
 @defun mouse-position
 This function returns a description of the position of the mouse.  The
 value looks like @code{(@var{frame} @var{x} . @var{y})}, where @var{x}
-and @var{y} are integers giving the position in pixels relative to the
-top left corner of the inside of @var{frame}.
+and @var{y} are integers giving the position in characters relative to
+the top left corner of the inside of @var{frame}.
 @end defun
 
 @defun set-mouse-position frame x y
 This function @dfn{warps the mouse} to position @var{x}, @var{y} in
 frame @var{frame}.  The arguments @var{x} and @var{y} are integers,
-giving the position in pixels relative to the top left corner of the
+giving the position in characters relative to the top left corner of the
 inside of @var{frame}.
+@end defun
 
-@cindex warping the mouse
-@cindex mouse warping
-Warping the mouse means changing the screen position of the mouse as if
-the user had moved the physical mouse---thus simulating the effect of
-actual mouse motion.
+@defun mouse-pixel-position
+This function is like @code{mouse-position} except that it returns
+coordinates in units of pixels rather than units of characters.
+@end defun
+
+@defun set-mouse-pixel-position frame x y
+This function warps the mouse like @code{set-mouse-position} except that
+@var{x} and @var{y} are in units of pixels rather than units of
+characters.  These coordinates are not required to be within the frame.
 @end defun
 
 @need 3000
@@ -724,8 +736,8 @@
 @end example
 
 @noindent
-where @var{xoffset} and @var{yoffset} are positions measured in
-characters, counting from the top left corner of @var{window}'s frame.
+where @var{xoffset} and @var{yoffset} are coordinates, measured in
+pixels, counting from the top left corner of @var{window}'s frame.
 
 If @var{position} is @code{t}, it means to use the current mouse
 position.  If @var{position} is @code{nil}, it means to precompute the
@@ -779,17 +791,33 @@
 the alternatives to offer; it has this format:
 
 @example
-(@var{title} (@var{string} @var{value})@dots{})
+(@var{title} (@var{string} . @var{value})@dots{})
 @end example
 
 @noindent
 which looks like the list that specifies a single pane for
 @code{x-popup-menu}.
 
+The return value is @var{value} from the chosen alternative.
+
+An element of the list may be just a string instead of a cons cell
+@code{(@var{string} . @var{value})}.  That makes a box that cannot
+be selected.
+
+If @code{nil} appears in the list, it separates the left-hand items from
+the right-hand items; items that precede the @code{nil} appear on the
+left, and items that follow the @code{nil} appear on the right.  If you
+don't include a @code{nil} in the list, then approximately half the
+items appear on each side.
+
 Dialog boxes always appear in the center of a frame; the argument
 @var{position} specifies which frame.  The possible values are as in
 @code{x-popup-menu}, but the precise coordinates don't matter; only the
 frame matters.
+
+If your Emacs executable does not use an X toolkit, then it cannot
+display a real dialog box; so instead it displays the same items in a
+pop-up menu in the center of the frame.
 @end defun
 
 @node X Selections
@@ -1011,4 +1039,5 @@
 
 @item
 x-pointer-shape, x-nontext-pointer-shape, x-mode-pointer-shape.
+x-cross-pointer-shape.
 @end ignore