aboutsummaryrefslogtreecommitdiffstats
path: root/Xlibscm.texi
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:26 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:26 -0800
commitdeda2c0fd8689349fea2a900199a76ff7ecb319e (patch)
treec9726d54a0806a9b0c75e6c82db8692aea0053cf /Xlibscm.texi
parent3278b75942bdbe706f7a0fba87729bb1e935b68b (diff)
downloadscm-deda2c0fd8689349fea2a900199a76ff7ecb319e.tar.gz
scm-deda2c0fd8689349fea2a900199a76ff7ecb319e.zip
Import Upstream version 5d6upstream/5d6
Diffstat (limited to 'Xlibscm.texi')
-rw-r--r--Xlibscm.texi262
1 files changed, 211 insertions, 51 deletions
diff --git a/Xlibscm.texi b/Xlibscm.texi
index 59e6c3c..1d41a3c 100644
--- a/Xlibscm.texi
+++ b/Xlibscm.texi
@@ -82,20 +82,19 @@ by the author.
@end ifinfo
@menu
-* Xlibscm::
-* Display::
-* Screen::
-* Window::
-* Window Visibility::
-* Graphics Context::
-* Cursor::
-* Colormap::
-* Rendering::
-* Event::
-* Index::
+* Xlibscm::
+* Display and Screens::
+* Drawables::
+* Graphics Context::
+* Cursor::
+* Colormap::
+* Rendering::
+* Images::
+* Event::
+* Index::
@end menu
-@node Xlibscm, Display, Top, Top
+@node Xlibscm, Display and Screens, Top, Top
@chapter Xlibscm
@dfn{Xlibscm} is a SCM interface to @dfn{X}.
@@ -188,8 +187,8 @@ the suitability of this documentation for any purpose. It is provided
``as is'' without express or implied warranty.
-@node Display, Screen, Xlibscm, Top
-@chapter Display
+@node Display and Screens, Drawables, Xlibscm, Top
+@chapter Display and Screens
@defun x:open-display display-name
@var{display-name} Specifies the hardware display name, which determines
@@ -251,12 +250,8 @@ Returns a number related to a vendor's release of the X server.
@end defun
-@node Screen, Window, Display, Top
-@chapter Screen
-
A display consists of one or more @dfn{Screen}s. Each screen has a
-@dfn{root-window}, @dfn{default-graphics-context}, @dfn{default-visual},
-and @dfn{colormap}.
+@dfn{root-window}, @dfn{default-graphics-context}, and @dfn{colormap}.
@defun x:screen-count display
Returns the number of available screens.
@@ -288,16 +283,23 @@ Returns the root window for the specified @var{window}'s screen.
Returns the default colormap of the specified screen.
@end defun
+@defun x:default-ccc display screen-number
+@defunx x:default-ccc display
+@defunx x:default-ccc window
+Returns the default Color-Conversion-Context (ccc) of the specified
+screen.
+@end defun
+
@defun x:default-gc display screen-number
@defunx x:default-gc display
@defunx x:default-gc window
Returns the default graphics-context of the specified screen.
@end defun
-@defun x:default-depths display screen-number
-@defunx x:default-depths display
-@defunx x:default-depths window
-Returns a vector of depths supported by the specified screen.
+@defun x:screen-depths display screen-number
+@defunx x:screen-depths display
+@defunx x:screen-depths window
+Returns an array of depths supported by the specified screen.
@end defun
The @dfn{Visual} type describes possible colormap depths and
@@ -329,9 +331,27 @@ visual classes for a screen:
@code{X:make-visual} returns a visual type for the screen specified by
@var{display} or @var{window} if successful; #f if not.
+@end defun
+@defun x:visual-class visual
+@defunx x:visual-class screen
+@defunx x:visual-class display
+Returns the (integer) visual class of its argument.
+@end defun
+
+@defun x:visual-geometry visual
+@defunx x:visual-geometry screen
+@defunx x:visual-geometry display
+Returns a list of the:
+@itemize @bullet
+@item red_mask
+@item green_mask
+@item blue_mask
+@item colormap_size
+@end itemize
@end defun
+
@defun x:screen-cells display screen-number
@defunx x:screen-cells display
@defunx x:screen-cells window
@@ -339,9 +359,11 @@ Returns the number of entries in the default colormap.
@end defun
@defun x:screen-depth display screen-number
+Returns the depth of the root window of the specified screen.
@defunx x:screen-depth display
@defunx x:screen-depth window
-Returns the depth of the root window of the specified screen.
+@defunx x:screen-depth visual
+Returns the depth of argument.
@cindex depth
The @dfn{depth} of a window or pixmap is the number of bits per pixel it has.
@@ -373,14 +395,23 @@ Returns the white pixel value of the specified screen.
Returns the black pixel value of the specified screen.
@end defun
-
-@node Window, Window Visibility, Screen, Top
-@chapter Window
+@node Drawables, Graphics Context, Display and Screens, Top
+@chapter Drawables
@cindex Drawable
@cindex drawable
A @dfn{Drawable} is either a window or pixmap.
+@menu
+* Windows and Pixmaps::
+* Window Attributes::
+* Window Properties and Visibility::
+@end menu
+
+
+@node Windows and Pixmaps, Window Attributes, Drawables, Drawables
+@section Windows and Pixmaps
+
@defun x:create-window window position size border-width depth class visual field-name value @dots{}
Creates and returns an unmapped Input-Output subwindow for a specified
parent @var{window} and causes the X server to generate a CreateNotify
@@ -447,12 +478,12 @@ Returns a list of:
@table @asis
@item coordinates
-@code{cons} of x and y coordinates that define the location of the
+@code{list} of x and y coordinates that define the location of the
@var{drawable}. For a window, these coordinates specify the upper-left
outer corner relative to its parent's origin. For pixmaps, these
coordinates are always zero.
@item size
-@code{cons} of the @var{drawable}'s dimensions (width and height). For
+@code{list} of the @var{drawable}'s dimensions (width and height). For
a window, these dimensions specify the inside size, not including the
border.
@item border-width
@@ -463,6 +494,101 @@ The depth of the @var{drawable} (bits per pixel for the object).
@end table
@end defun
+
+@defun x:window-geometry-set! window field-name value @dots{}
+Changes the @dfn{Configuration} components specified by
+@var{field-name}s for the specified @var{window}.
+@end defun
+
+@noindent
+These are the attributes settable by @code{x:window-geometry-set!}.
+That these attributes are encoded by small integers -- just like those
+of the next section. Be warned therefore that confusion of attribute
+names will likely not signal errors, just cause mysterious behavior.
+
+@defvr Attribute x:CWX
+@defvrx Attribute x:CWY
+@defvrx Attribute x:CW-Width
+@defvrx Attribute x:CW-Height
+The x:CWX and x:CYY members are used to set the window's x and y
+coordinates, which are relative to the parent's origin and indicate the
+position of the upper-left outer corner of the window. The x:CW-Width
+and x:CW-Height members are used to set the inside size of the window,
+not including the border, and must be nonzero. Attempts to configure a
+root window have no effect.
+
+If a window's size actually changes, the window's subwindows move
+according to their window gravity. Depending on the window's bit
+gravity, the contents of the window also may be moved
+@end defvr
+
+@defvr Attribute x:CW-Border-Width
+The integer x:CW-Border-Width is used to set the width of the border in
+pixels. Note that setting just the border width leaves the outer-left
+corner of the window in a fixed position but moves the absolute position
+of the window's origin. It is an error to set the border-width
+attribute of an InputOnly window nonzero.
+@end defvr
+
+@defvr Attribute x:CW-Sibling
+The sibling member is used to set the sibling window for stacking
+operations.
+@end defvr
+
+@defvr Attribute x:CW-Stack-Mode
+The x:CW-Stack-Mode member is used to set how the window is to be
+restacked and can be set to x:Above, x:Below, x:Top-If, x:Bottom-If, or
+x:Opposite.
+@end defvr
+
+@noindent
+If a sibling and a stack-mode are specified, the window is restacked as
+follows:
+
+@table @code
+@item x:Above
+The window is placed just above the sibling.
+@item x:Below
+The window is placed just below the sibling.
+@item x:Top-If
+If the sibling occludes the window, the window is placed at the top of
+the stack.
+@item x:Bottom-If
+If the window occludes the sibling, the window is placed at the bottom
+of the stack.
+@item x:Opposite
+If the sibling occludes the window, the window is placed at the top of
+the stack. If the window occludes the sibling, the window is placed at
+the bottom of the stack.
+@end table
+
+@noindent
+If a stack-mode is specified but no sibling is specified, the window
+is restacked as follows:
+
+@table @code
+@item x:Above
+The window is placed at the top of the stack.
+@item x:Below
+The window is placed at the bottom of the stack.
+@item x:Top-If
+If any sibling occludes the window, the window is placed at the top of
+the stack.
+@item x:Bottom-If
+If the window occludes any sibling, the window is placed at the bottom
+of the stack.
+@item x:Opposite
+If any sibling occludes the window, the window is placed at the top of
+the stack. If the window occludes any sibling, the window is placed at
+the bottom of the stack.
+@end table
+
+
+
+
+@node Window Attributes, Window Properties and Visibility, Windows and Pixmaps, Drawables
+@section Window Attributes
+
@defun x:window-set! window field-name value @dots{}
Changes the components specified by @var{field-name}s for the specified
@var{window}. The restrictions are the same as for
@@ -471,8 +597,6 @@ altered is server dependent. If an error occurs, a subset of the
components may have been altered.
@end defun
-@heading Window Attributes
-
@noindent
The @code{x:create-window} and @code{x:window-set!} procedures take five
and one argument (respectively) followed by pairs of arguments, where
@@ -773,9 +897,41 @@ in the parent's cursor will cause an immediate change in the displayed
cursor. On the root window, the default cursor is restored.
@end defvr
+@defun x:window-ref window field-name @dots{}
+Returns a list of the components specified by @var{field-name}s for the
+specified @var{window}. Allowable @var{field-name}s are a subset of
+those for @code{x:window-set!}:
+
+@itemize @bullet
+@item x:CW-Back-Pixel
+@item x:CW-Bit-Gravity
+@item x:CW-Win-Gravity
+@item x:CW-Backing-Store
+@item x:CW-Backing-Planes
+@item x:CW-Backing-Pixel
+@item x:CW-Override-Redirect
+@item x:CW-Save-Under
+@item x:CW-Event-Mask
+@item x:CW-Dont-Propagate
+@item x:CW-Colormap
+@end itemize
+@end defun
+
-@node Window Visibility, Graphics Context, Window, Top
-@chapter Window Visibility
+@node Window Properties and Visibility, , Window Attributes, Drawables
+@section Window Properties and Visibility
+
+@defun x:get-window-property window property
+Returns the (string or list of numbers) value of @var{property} of
+@var{window}.
+@defunx x:get-window-property window property #t
+Removes and returns the (string or list of numbers) value of
+@var{property} of @var{window}.
+@end defun
+
+@defun x:list-properties window
+Returns a list of the properties (strings) defined for @var{window}.
+@end defun
@noindent
In X parlance, a window which is hidden even when not obscured by other
@@ -824,13 +980,6 @@ leads to simpler programs and to proper interaction with window
managers.
@end defun
-@defun x:map-raised window
-This procedure is similar to @code{x:map-window} in that it maps the
-@var{window} and all of its subwindows that have had map requests.
-However, it also raises the specified @var{window} to the top of the
-stack.
-@end defun
-
@defun x:map-subwindows window
Maps all subwindows of a specified @var{window} in top-to-bottom
stacking order. The X server generates x:Expose events on each newly
@@ -859,7 +1008,7 @@ at a time because the server needs to perform much of the work only
once, for all of the windows, rather than for each window.
@end defun
-@node Graphics Context, Cursor, Window Visibility, Top
+@node Graphics Context, Cursor, Drawables, Top
@chapter Graphics Context
@noindent
@@ -1312,13 +1461,13 @@ resides. Note that @var{window} is used only to determine the screen.
@table @samp
@item X:Gray-Scale
-@itemx X:Pseudo-Color
-@itemx X:Direct-Color
+@item X:Pseudo-Color
+@item X:Direct-Color
The initial values of the colormap entries are undefined.
@item X:Static-Gray
-@itemx X:Static-Color
-@itemx X:True-Color
+@item X:Static-Color
+@item X:True-Color
The entries have defined values, but those values are specific to
@var{visual} and are not defined by X. The @var{alloc-policy} must be
@samp{X:Alloc-None}.
@@ -1335,7 +1484,7 @@ undefined.
@table @samp
@item X:Gray-Scale
-@itemx X:Pseudo-Color
+@item X:Pseudo-Color
The effect is as if an @code{XAllocColorCells} call returned all pixel
values from zero to N - 1, where N is the colormap entries value in
@var{visual}.
@@ -1390,7 +1539,7 @@ be produced. All of these are allocated writable by the request.
@table @samp
@item x:Gray-Scale
-@itemx x:Pseudo-Color
+@item x:Pseudo-Color
Each mask has exactly one bit set to 1. If @var{contiguous?} is
non-false and if all masks are ORed together, a single contiguous set of
bits set to 1 is formed.
@@ -1523,8 +1672,12 @@ colormap.
@end defun
+@defun x:ccc colormap
+Returns the Color-Conversion-Context of @var{colormap}.
+@end defun
+
-@node Rendering, Event, Colormap, Top
+@node Rendering, Images, Colormap, Top
@chapter Rendering
@defun x:flush display
@@ -1697,7 +1850,14 @@ components: foreground, background, tile, stipple,
tile-stipple-x-origin, and tile-stipple-y-origin.
@end defun
-@node Event, Index, Rendering, Top
+@node Images, Event, Rendering, Top
+@chapter Images
+
+@defun x:read-bitmap-file drawable file
+
+@end defun
+
+@node Event, Index, Images, Top
@chapter Event
@noindent
@@ -1799,7 +1959,7 @@ For configure, create, gravity, and reparent events the @var{x} and
parent window's origin and indicate the position of the upper-left
outside corner of the created window.
@item X-event:x-root
-@itemx X-event:y-root
+@item X-event:y-root
@tab
The pointer's coordinates relative to the root window's origin at the
time of the @var{event}.
@@ -1855,7 +2015,7 @@ Indicates the notification detail: @var{x:Notify-Ancestor},
If the event window is the focus window or an inferior of the focus
window, #t; otherwise #f.
@item X-event:width
-@itemx X-event:height
+@item X-event:height
@tab
The size (extent) of the rectangle.
@item X-event:count