diff options
Diffstat (limited to 'Xlibscm.texi')
-rw-r--r-- | Xlibscm.texi | 262 |
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 |