", Hyphenation = on, Consecutive Hyphens = 2, Vert. Just. = off> ", Level 1 Show = no, Level 2 Suffix = , Level 2 Starting Value = 0, Level 2 Show = no> ", Level 1 Show = no, Level 2 Suffix = "<#04>"> ", Level 1 Show = no, Level 2 Suffix = > ", Level 1 Show = no, Level 2 Suffix = "<#04>"> Windows and Pixmaps ) (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066 667,6))> Windows and Pixmaps ) (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066 667,6))> <|,"4<#1e>35"> WINDOWS AND PIXMAPS ) (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066 667,6))> ) (T8,2,12,0.026667,0.733333,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10 2,1101,3, <"table"> ) (T8,3,12,0.066667,0.6,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110 1,3, ) (g9,5,0 (p7,5,8,19 (g9,5,0 (g9,5,0 (v4,5,0,0.266667,0,1.6,0,17,1,0) (v4,6,0,1.6,0,1.6,0.933333,17,1,0) (v4,7,0,1.6,0.933333,0.266667,0.933333,17,1,0) (v4,8,0,0.266667,0.933333,0.266667,0,17,1,0)))) (g9,10,8 (g9,10,1032 (p7,10,8,13 (g9,10,0 (g9,10,0 (v4,10,0,1.451931,0.934813,1.249826,0.934813,17,1,0) (v4,11,0,1.249826,0.934813,1.249826,0.784691,17,1,0) (v4,12,32,1.249826,0.784691,1.249826,0.653326,17,0,0) (v4,13,0,1.249826,0.653326,1.249826,0.353084,17,1,0) (v4,14,32,1.249826,0.353084,1.227369,0.146667,17,0,0) (v4,15,0,1.227369,0.146667,1.451931,0.146667,17,1,0) (v4,16,0,1.451931,0.146667,1.451931,0.653326,17,1,0) (v4,17,0,1.451931,0.653326,1.564212,0.653326,17,1,0) (v4,18,0,1.564212,0.653326,1.564212,0.784691,17,1,0) (v4,19,0,1.564212,0.784691,1.451931,0.784691,17,1,0) (v4,20,0,1.451931,0.784691,1.451931,0.934813,17,1,0)))) (p7,22,8,13 (g9,22,0 (g9,22,0 (v4,22,32,1.249826,0.784691,1.249826,0.653326,17,0,0) (v4,23,0,1.249826,0.653326,1.002807,0.653326,17,1,0) (v4,24,0,1.002807,0.653326,1.249826,0.353084,17,1,0) (v4,25,32,1.249826,0.353084,1.227369,0.146667,17,0,0) (v4,26,0,1.227369,0.146667,0.823159,0.615801,17,1,0) (v4,27,0,0.823159,0.615801,0.823159,0.784691,17,1,0) (v4,28,0,0.823159,0.784691,1.249826,0.784691,17,1,0))))) (g9,29,2048 (v4,29,33,0.800701,0.146667,0.800701,0.146667,17,0,0) (v4,30,33,0.800701,1.159997,0.800701,1.159997,17,0,0) (v4,31,33,1.586667,1.159997,1.586667,1.159997,17,0,0) (v4,32,33,1.586667,0.146667,1.586667,0.146667,17,0,0)))) (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066 667,6))> Drawables4.1<#04>Both windows and pixmaps can be used as sources and destinations in graphics operations. These are collectively known as drawables. The following functions apply to both windows and pixmaps. drawable<#1e>display drawableFunctiondisplay", Sort String = "drawable<#1e>display"> Returns the display for the specified drawable. drawable <#1f> A drawable object. drawable<#1e>equal drawable<#1e>1 drawable<#1e>2 Functionequal", Sort String = "drawable<#1e>equal"> Returns true if the two arguments refer to the same server resource, and nil if they do not. drawable<#1e>1, drawable<#1e>2 <#1f> drawable objects. drawable<#1e>id drawableFunctionid", Sort String = "drawable<#1e>id"> Returns:
id <#1f> Type resource<#1e>id. Returns the unique resource ID assigned to the specified drawable. drawable <#1f> A drawable object. drawable<#1e>p drawableFunctionp", Sort String = "drawable<#1e>p"> Returns:
boole <#1f> Type boolean. Returns true if the argument is a drawable and nil otherwise. drawable<#1e>plist drawableFunctionplist", Sort String = "drawable<#1e>plist"> Returns:
plist <#1f> A property list. Returns and (with setf) sets the property list for the specified drawable. This function provides a hook where extensions can add data. Creating 4.2<#04>A window is a drawable that can also receive input events. CLX Windowsrepresents a window with a window object. The create<#1e>window function creates a new window object. create<#1e>window &key :parent :x :y :width :height (:depth 0)Functionwindow", Sort String = "create<#1e>window">
(:border<#1e>width 0) (:class :copy) (:visual :copy) :background
:border :gravity :bit<#1e>gravity :backing<#1e>store :backing<#1e>planes :backing<#1e>pixel :save<#1e>under :event<#1e>mask :do<#1e>not<#1e>propaga te<#1e>mask :override<#1e>redirect :colormap :cursor Returns:
window <#1f> Type window. Creates and returns a window. A :parent window must be specified; the first window created by a client will have a root window as its :paren t. The new window is initially unmapped and is placed on top of its siblings in the stacking order. A :create<#1e>notify event is generated by the server. <|,"4<#1e>36">The :class of a window can be :input<#1e>output or :input<#1e>only. Windows of class :input<#1e>only cannot be used as the destination drawable for graphics output and can never receive :exposure events, but otherwise operate the same as :input<#1e>output windows. The :class can also be :copy, in which case the new window has the same class as its :parent. For an :input<#1e>output window, the :visual and :dept h must be a combinationsupported by the :parent's screen, but the :depth need not be the same as the :parent' s. The :parent of an :input<#1e>output window must also be :input<#1e>output. A :depth of 0 means that the depth of the :parent is used. For an :input<#1e>only window, the :depth must be zero, and the :visual must besupported by the :parent 's screen. The :parent of an :input<#1e>only window canbe of any class. The only attributes that can be given for an :input<#1e>onlywindow are :cursor, :do<#1e> not<#1e>propagate<#1e>mask, :event<#1e>mask, :gravity, and:override<#1e>redirect. :parent <#1f> The parent window. This argument is required. :x, :y <#1f> int16 coordinates for the outside upper<#1e>left corner of the new window with respect to the origin (inside upper<#1e>left corner) of the :parent. These arguments are required. :width, :height <#1f> card16 values for the size of the new window. These arguments are required. :depth <#1f> A card16 specifying the depth of the new window. :class <#1f> One of :input<#1e>output, :input<#1e>only , or :copy. :visual <#1f> A card29 ID specifying the visual type of the new window. :background, :backing<#1e>pixel, :backing<#1e>planes , :backing<#1e>store, :bit<#1e>gravity, :border , :border<#1e>width, :colormap, :cursor, :do<#1e>not<#1e>propagate<#1e>mask, :event<#1e>mask, : gravity, :override<#1e>redirect, :save<#1e>under <#1f> Initial attribute values for the new window. If nil, the default value is defined by the X protocol. See paragraph 4.3, Window Attributes. <|,"4<#1e>37"> Window 4.3<#04>The following paragraphs describe the CLX functions used to return or Attributeschange window attributes. Using the with<#1e>stat e macro improves the performance of attribute access by batching related accesses in the minimum number of server requests. drawable<#1e>border<#1e>width drawableFunctionwidth attribute of window">width">border<#1e>width", Sort String = "drawable<#1e>border<#1e>width"> Returns:
border<#1e>width <#1f> Type card16. Returns the border<#1e>width of the drawable in pixels. It always returns zero if the drawable is a pixmap or an :input<#1e>only window. Used with setf, this function also changes the border width of the :input<#1e>only window. The default border width of a new window is zero. Changing just the border width leaves the outer left corner of a window in a fixed position but moves the absolute position of the window's origin. It is an error to make the border width of an :input<#1e>only window nonzero. When changing the border<#1e>width of a window, if the override<#1e>redirect attribute of the window is :off and some other client has selected :substructure<#1e>redirect on the parent, a :configure<#1e> request event is generated, and no further processing is performed. Otherwise, the border<#1e>width is changed. drawable <#1f> A drawable object. drawable<#1e>depth drawableFunctiondepth", Sort String = "drawable<#1e>depth"> Returns:
depth <#1f> Type card8. Returns the depth of the specified drawable (bits per pixel). drawable <#1f> A drawable object. drawable<#1e>height drawableFunctionheight", Sort String = "drawable<#1e>height"> Returns:
inside<#1e>height <#1f> Type card16. drawable<#1e>width drawableFunctionwidth", Sort String = "drawable<#1e>width"> Returns:
inside<#1e>width <#1f> Type card16. These functions return the height or width of the drawable. These coordinates define the inside size of the drawable, in pixels. Used with setf, these functions also change the inside height or width of a window. However, the height or width of a pixmap cannot be changed. Changing the width and height resizes a window without changing its position or stacking priority. Changing the size of a mapped window may cause the window to lose its contents and generate an :exposure event. If a mapped window is made smaller, :exposure events are generated on windows that it formerly obscured. When changing the size of a window, if the override<#1e>redirect attribute of the window is :off and some other client has selected :substr ucture<#1e>redirect on the parent, a :configure<#1e>request event is generated, and no further processing is performed. Otherwise, if another client has selected :resize<#1e>redirect on the window, a :resize<#1e>request event is generated, and the current inside width and height are maintained. Note that the override<#1e>redi rect attribute of the window has no effect on :resize<#1e>redirect and that :substructure<#1e>redirect on the parent has precedence over :resize<#1e>redirect on the window. <|,"4<#1e>38">When the inside size of the window is changed, the children of the window can move according to their window gravity. Depending on the window's bit gravity, the contents of the window can also be moved. drawable <#1f> A drawable object. drawable<#1e>x drawableFunctionx", Sort String = "drawable<#1e>x"> Returns:
outside<#1e>left <#1f> Type int16. drawable<#1e>y drawableFunctiony", Sort String = "drawable<#1e>y"> Returns:
outside<#1e>top <#1f> Type int16. These functions return the x or y coordinate of the specified drawable . They always return zero if the drawable is a pixmap. These coordinates define the location of the top left pixel of the window's border or of the window, if it has no border. Used with setf , these functions also change the x or y coordinate of a window. However, the x or y coordinate of a pixmap cannot be changed. Changing the x and y coordinates moves a window without changing its size or stacking priority. Moving a mapped window generates :exposure events on any formerly obscured windows. When changing the position of a window, if the override<#1e>redirect attribute of the window is :off and some other client has selected :substructure<#1e>redirect on the parent, a :configure<#1e> request event is generated, and no further processing is performed. Otherwise, the window is moved. drawable <#1f> A drawable object. window<#1e>all<#1e>event<#1e>masks windowFunctionall<#1e>event<#1e>masks ", Sort String = "window<#1e>all<#1e>event<#1e>masks "> Returns:
all<#1e>event<#1e>masks <#1f> Type mask32. Returns the inclusive<#1e>or of the event masks selected on the specified window by all clients. window <#1f> A window. setf (window<#1e>background) window background Functionbackground", Sort String = "window<#1e>background"> Returns:
background <#1f> Either a pixel, a pixmap, :non e, or :parent<#1e>relative. Changes the background attribute of the window to the specified value. This operation is not allowed on an :input<#1e>onl y window. Changing the background does not cause the window contents to be changed. Note that the background of a window cannot be returned from the X server. The default background of a new window is :none. In general, the server automatically fills in exposed areas of the window when they are first made visible. A background pixmap is tiled to fill each area. However, if the background is :none, the server will not modify exposed areas. If the background is :parent <#1e>relative, the window and its parent must have the same depth. In this case, the window shares the same background as its parent. The parent's background is not copied and is reexamined whenever the window's background is required. If the background is :parent<#1e>relative , the background pixmap tile origin is the same as the parent's; otherwise, the tile origin is the window origin. window <#1f> A window. background <#1f> Either a pixel, a pixmap, :none , or :parent<#1e>relative. <|,"4<#1e>39">window<#1e>backing<#1e>pixel windowFunction pixel attribute of window">pixel">backing<#1e>pixel", Sort String = "window<#1e>backing<#1e>pixel"> Returns:
backing<#1e>pixel <#1f> Type pixel. Returns and (with setf) changes the value of the backing<#1e>pixel attribute for the specified window. Changing the backing<#1e>pixel attribute of a mapped window may have no immediate effect. The default backing<#1e>pixel of a new window is zero. window <#1f> A window. window<#1e>backing<#1e>planes windowFunctionplanes attribute of window">planes">backing<#1e>planes", Sort String = "window<#1e>backing<#1e>planes"> Returns:
backing<#1e>planes <#1f> Type pixel. Returns and (with setf) changes the value of the backing<#1e>planes attribute for the specified window. Changing the backing<#1e>planes attribute of a mapped window may have no immediate effect. The default backing<#1e>planes of a new window is all one's. window <#1f> A window. window<#1e>backing<#1e>store windowFunctionstore attribute of window">store">backing<#1e>store", Sort String = "window<#1e>backing<#1e>store"> Returns:
backing<#1e>store<#1e>type <#1f> One of :always, :not<#1e> useful, or :when<#1e>mapped. Returns and (with setf) changes the value of the backing<#1e>store attribute for the specified window. Changing the backing<#1e>store attribute of an obscured window to :when<#1e>mapped or :always may have no immediate effect. The default backing<#1e>store of a new window is :not<#1e>useful. window <#1f> A window. window<#1e>bit<#1e>gravity windowFunctiongravity attribute of window", Sort String = "bit gravity attribute of window">gravity">bit<#1e>gravity", Sort String = "window<#1e>bit<#1e>gravity"> Returns:
bit<#1e>gravity <#1f> Type bit<#1e>gravity. Returns and (with setf) changes the bit<#1e>gravity attribute of the window. If a window is reconfigured without changing its inside width or height, the contents of the window move with the window and are not lost. Otherwise, the contents of the resized window are either moved or lost, depending on its bit<#1e>gravity attribute. The default bit<#1e>gravity of a new window is :forget. For example, suppose a window's size is changed by W pixels in width and H pixels in height. The following table shows, for each bit<#1e>gravity value, the change in position (relative to the window origin) that results for each pixel of the window contents. Bit<#1e>GravityX ChangeY Change :centerW/2H/2 :eastWH/2 :northW/20 :north<#1e>eastW0 :north<#1e>west00 :southW/2H :south<#1e>eastWH :south<#1e>west0H :west0H/2
A :static bit<#1e>gravity indicates the contents or window should not move relative to the origin of the root window. <|,"4<#1e>40">A server can choose to ignore the specified bit<#1e>gravity attribute and use :forget instead. A :forget bit<#1e>gravit y attribute indicates that the window contents are always discarded after a size change, even if backing<#1e>store or save<#1e>under attributes are :on. The window's background is displayed (unless it is :none), and zero or more :exposure events are generated. window <#1f> A window. setf (window<#1e>border) window borderFuncti onborder", Sort String = "window<#1e>border"> Returns:
border <#1f> Either a pixel, a pixmap, or :copy. Changes the border attribute of the window to the specified value. This operation is not allowed on an :input<#1e>only window. Changing the border attribute also causes the window border to be repainted. Note that the border of a window cannot be returned from the X server. The default border of a new window is :copy . A border pixmap is tiled to fill the border. The border pixmap tile origin isthe same as the background tile origin. A border pixmap and the windowmust have the same root and depth. If the border is :copy, the parent'sborder is copied and used; subsequent changes to the parent's border do notaffect the window border. window <#1f> A window. border <#1f> Either a pixel, a pixmap, or :copy . window<#1e>class windowFunctionclass", Sort String = "window<#1e>class"> Returns:
class <#1f> Either :input<#1e>output or :input<#1e>only . Returns the class of the specified window. window <#1f> A window. window<#1e>colormap windowFunctioncolormap", Sort String = "window<#1e>colormap"> Returns:
colormap <#1f> Type colormap or null. Returns and (with setf) changes the value of the colormap attribute for the specified window. A value of :copy is never returned, since the parent's colormap attribute is actually copied, but the attribute can be set to :copy in a setf form. Changing the colormap of a window (defining a new map, not changing the contents of the existing map) generates a :colormap<#1e>notify event. Changing the colormap of a visible window may have no immediate effect on the screen (see install<#1e>colormap). The default colormap of a new window is :copy. window <#1f> A window. window<#1e>colormap<#1e>installed<#1e>p windowFunctioncolormap<#1e>installed<#1e>p", Sort String = "window<#1e>colormap<#1e>installed<#1e>p"> Returns:
colormap<#1e>installed<#1e>p <#1f> Type boolean. Returns non<#1e>nil if the colormap associated with this window is installed. Otherwise, this function returns nil. window <#1f> A window. <|,"4<#1e>41">setf (window<#1e>cursor) window cursor Functioncursor", Sort String = "window<#1e>cursor"> Returns:
cursor <#1f> Type cursor or :none. Changes the cursor attribute of the window to the specified value. Changing the cursor of a root window to :none restores the default cursor. Note that the cursor of window cannot be returned from the X server. The default cursor of a new window is :none. window <#1f> A window. cursor <#1f> Either cursor or :none. window<#1e>display windowFunctiondisplay", Sort String = "window<#1e>display"> Returns:
display <#1f> Type display. Returns the display object associated with the specified window . window <#1f> A window. window<#1e>do<#1e>not<#1e>propagate<#1e>mask windowFunction not<#1e>propagate<#1e>mask attribute of window">not<#1e>propagate<#1e>mask">do<#1e>not<#1e>propagate<#1e>mask", Sort String = "window<#1e>do<#1e>not<#1e>propagate<#1e>mask"> Returns:
do<#1e>not<#1e>propagate<#1e>mask <#1f> Type mask32. Returns and (with setf) changes the do<#1e>not<#1e>propagate<#1e>mask attribute for thewindow. The default do<#1e>not<#1e>propagate<#1e>mask of a new window is zero. If a window receives an event from one of the user input devices, and if noclient has selected to receive the event, the event can instead bepropagated up the window hierarchy to the first ancestor for which some clienthas selected it. However, any event type selected by the do<#1e>not<#1e>propagate<#1e>maskis not be propagated. The types of events that can be selected by thedo<#1e>not<#1e>propagate<#1e> mask are those of type device<#1e>event<#1e>mask<#1e>class. See paragraph12.2, Selecting Events. window <#1f> A window. window<#1e>equal window<#1e>1 window<#1e>2Functio nequal", Sort String = "window<#1e>equal"> Returns:
boolean. Returns non<#1e>nil if the two arguments are the same window, and nil if they are not. window<#1e>1, window<#1e>2 <#1f> The windows to compare for equality. window<#1e>event<#1e>mask windowFunctionmask", Sort String = "event mask", "attribute of window">mask">event<#1e>mask", Sort String = "window<#1e>event<#1e>mask"> Returns:
event<#1e>mask <#1f> Type mask32. Returns and (with setf) changes the value of the event<#1e>mask attribute for the window. The default event<#1e>mask of a new window is zero. window <#1f> A window. window<#1e>gravity windowFunctiongravity", Sort String = "window<#1e>gravity"> Returns:
gravity <#1f> Type win<#1e>gravity. Returns and (with setf) changes the gravity attribute of the window. If a parent window is reconfigured without changing its inside width or height, then all child windows move with the parent and are not changed. Otherwise, each child of the resized parent is moved, depending on the child's gravity attribute. The default gravity of a new window is :north<#1e>west. <|,"4<#1e>42">For example, suppose the size of the window's parent is changed by W pixels in width and H pixels in height. The following table shows, for each possible gravity value, the resulting change in the window's position relative to its parent's origin. When the window is moved, two events are generated<#1f>a :configure<#1e>notify event followed by a :gravity<#1e>notify event. GravityX ChangeY Change :centerW/2H/2 :eastWH/2 :northW/20 :north<#1e>eastW0 :north<#1e>west00 :southW/2H :south<#1e>eastWH :south<#1e>west0H :west0H/2
A :static gravity indicates that the position of the window should not move relative to the origin of the root window. An :unmap gravity is like :north<#1e>west, except the window is also unmapped and an :unmap<#1e>notify event is generated. This :unmap<#1e>notify event is generated after the :configure<#1e>notify event is generated for the parent. window <#1f> A window. window<#1e>id windowFunctionid", Sort String = "window<#1e>id"> Returns:
The resource<#1e>id of the window. Returns the unique ID assigned to window. window <#1f> A window. window<#1e>map<#1e>state windowFunctionmap<#1e>state", Sort String = "window<#1e>map<#1e>state"> Returns:
map<#1e>state <#1f> One of :unmapped, :unviewable, or :viewable. Returns the map state of window. A window is :unviewable if it is mapped but some ancestor is unmapped. window <#1f> A window. window<#1e>override<#1e>redirect windowFunctionredirect attribute of window", Sort String = "override redirect attribute of window">redirect">override<#1e>redirect", Sort String = "window<#1e>override<#1e>redirect"> Returns:
override<#1e>redirect <#1f> Either :on or :off. Returns and (with setf) changes the value of the override<#1e>redirec t attribute for window. The default override<#1e>redirect of a new window is :off. The override<#1e>redirect attribute determines whether or not attempts to changewindow geometry or parent hierarchy can be redirected by a windowmanager or some other client. The functions that might be affected by theoverride<#1e>redirect attribute are circulate<#1e>wi ndow<#1e>down, circulate<#1e>window<#1e>up,drawable<#1e> border<#1e>width, drawable<#1e>height, drawable<#1e>width , drawable<#1e>x,drawable<#1e>y, map<#1e>wind ow, and window<#1e>priority. window <#1f> A window. <|,"4<#1e>43">window<#1e>p objectFunctionp", Sort String = "window<#1e>p"> Returns:
window<#1e>p <#1f> Type boolean. Returns non<#1e>nil if the object argument is a window; otherwise, it returns nil. window<#1e>plist windowFunctionplist", Sort String = "window<#1e>plist"> Returns:
plist <#1f> A property list. Returns and (with setf) sets the property list for the specified window. This function provides a hook where extensions can hang data. window <#1f> A window. setf (window<#1e>priority window) (&optional sibl ing) modeFunctionpriority", Sort String = "window<#1e>priority"> Returns:
mode <#1f> One of :above, :below, :bottom<#1e>i f, :opposite, or :top<#1e>if. Changes the stacking priority element of the window to the specified value. It is an error if the sibling argument is specified and is not actually a sibling of the window. Note that the priority of an existing window cannot be returned from the X server. When changing the priority of a window, if the override<#1e>redirect attributeof the window is :off and some other client has selected:substructure<#1e>redirect on the parent, a :configure<#1e>requ est event isgenerated, and no further processing is performed. Otherwise, the priorityis changed. window <#1f> A window. sibling <#1f> An optional argument specifying that window is to be restacked relative to this sibling window. mode <#1f> One of :above, :below, :bottom<#1e>if , :opposite, or :top<#1e>if. window<#1e>save<#1e>under windowFunctionunder attribute of window">under">save<#1e>under", Sort String = "window<#1e>save<#1e>under"> Returns:
save<#1e>under <#1f> Either :on or :off. Returns and (with setf) changes the value of the save<#1e>under attribute for the specified window. Changing the save<#1e>under attribute of a mapped window may have no immediate effect. window <#1f> A window. window<#1e>visual windowFunctionvisual", Sort String = "window<#1e>visual"> Returns:
visual<#1e>type <#1f> Type card29. Returns the visual<#1e>type associated with the specified window . window <#1f> A window. with<#1e>state drawable &body bodyMacrostate", Sort String = "with<#1e>state"> Batches successive read and write accesses to window attributes and drawable geometry, in order to minimize the number of requests sent to the server. Batching occurs automatically within the dynamic extent of the body. Thebody is not executed within a with<#1e>display form. <|,"4<#1e>44">All window attributes can be returned or changed in a single request.Similarly, all drawable geometry values can be returned or changed in a single request. with<#1e>state combines accesses to these values into the minimum number of server requests necessary to guarantee that each readaccess returns the current server state of the drawable. The number ofserver requests sent depends on the sequence of calls to reader and setffunctions within the dynamic extent of the body. There are two groups ofreader and setf functions<#1f>the Window Attributes group and the Drawable Geometry group<#1f>as shown in Table 4<#1e>1. <|,"4<#1e>45"> Table 4<#1e>1Groups ofReader and Setf Functions
GroupReader FunctionsSetf Functions
Window window<#1e>all<#1e>event<#1e>maskswindow<#1e>background Attributeswindow<#1e>backing<#1e>pixelwindow<#1e>backing<#1e>pix el window<#1e>backing<#1e>planeswindow<#1e>backing<#1e>planes window<#1e>backing<#1e>storewindow<#1e>backing<#1e>store window<#1e>bit<#1e>gravitywindow<#1e>bit<#1e>gravity window<#1e>classwindow<#1e>border window<#1e>colormapwindow<#1e>colormap window<#1e>colormap<#1e>window<#1e>cursor installed<#1e>pwindow<#1e>do<#1e>not<#1e>propagate<#1e>mask window<#1e>do<#1e>not<#1e>window<#1e>event<#1e>mask propagate<#1e>maskwindow<#1e>gravity window<#1e>event<#1e>maskwindow<#1e>override<#1e>redirect window<#1e>gravitywindow<#1e>save<#1e>under window<#1e>map<#1e>state window<#1e>override<#1e>redirect window<#1e>save<#1e>under window<#1e>visual Drawabledrawable<#1e>border<#1e>widthdrawable<#1e>border<#1e>wid th Geometrydrawable<#1e>depthdrawable<#1e>height drawable<#1e>heightdrawable<#1e>width drawable<#1e>rootdrawable<#1e>x drawable<#1e>widthdrawable<#1e>y drawable<#1e>xwindow<#1e>priority drawable<#1e>y The results from a sequence of calls to setf functions in a given group are cached and sent in a single server request, either upon exit from the body or when a reader function from the corresponding group is called. with<#1e>state sends a single request to update all its cached values for the drawable before the first call to a reader function within the body and alsobefore the first call to a reader function following a sequence of calls to setf functions from the corresponding group. drawable <#1f> A display. body <#1f> The forms in which attributes accesses are batched. Stacking Order4.4<#04>Sibling windows can stack on top of each other. Windows above can obscure or occlude lower windows. This relationship between sibling windows is known as the stacking order. The window<#1e>priority function can be used to change the stacking order of a single window. CLX also provides functions to raise or lower children of a window. Raising a mapped window can generate :exposure events for the window and any mapped subwindows that were formerly obscured. Lowering a mapped window can generate :exposure events on any windows it formerly obscured. circulate<#1e>window<#1e>down windowFunctionwindow<#1e>down", Sort String = "circulate<#1e>window<#1e>down"> Lowers the highest mapped child of the specified window that partially or completely occludes another child to the bottom of the stack. Completely unobscured children are unaffected. Exposure processing is performed on formerly obscured windows. <|,"4<#1e>46">If some other client has selected :substructure<#1e>redirect on the window, a :circulate<#1e>request event is generated, and no further processing is performed. Otherwise, the child window is lowered and a :circulate<#1e>notify event is generated if the window is actually restacked. window <#1f> A window. circulate<#1e>window<#1e>up windowFunctionwindow<#1e>up", Sort String = "circulate<#1e>window<#1e>up"> Raises the lowest mapped child of the specified window that is partially or completely occluded by another child to the top of the stack. Completely unobscured children are unaffected. Exposure processing is performed on formerly obscured windows. If another client has selected :substructure<#1e>redirect on the window, a :circulate<#1e>request event is generated, and no further processing is performed. Otherwise, the child window is raised and a :circulate<#1e>notify event is generated if the window is actually restacked. window <#1f> A window. Window 4.5<#04>All the windows in X are arranged in a strict hierarchy. At the top of Hierarchythe hierarchy are the root windows, which cover the display screens. Each root window is partially or completely covered by its child windows. All windows, except for root windows, have parents. Child windows can have their own children. In this way, a tree of arbitrary depth on each screen can be created. CLX provides several functions for examining and modifying the window hierarchy. drawable<#1e>root drawableFunctionroot", Sort String = "drawable<#1e>root"> Returns:
root<#1e>window <#1f> Type window. Returns the root window of the specified drawable. drawable <#1f> A drawable. query<#1e>tree window &key (:result<#1e>type `list )Functiontree", Sort String = "query<#1e>tree"> Returns:
children <#1f> Type sequence of window.
parent <#1f> Type window or null.
root <#1f> Type window. Returns the children windows, the parent window, and the root window for the specified window. The children are returned as a sequence of windows in current stacking order, from bottom<#1e>most (first) to top<#1e>most (last). The :result<#1e> type specifies the type of children sequence returned. window <#1f> A window. :result<#1e>type <#1f> A valid type specifier for a sub<#1e>type of sequence. The default is a list. reparent<#1e>window window parent x yFunctionwindow", Sort String = "reparent<#1e>window"> Changes a window's parent within a single screen. There is no way to move a window between screens. The specified window is reparented by inserting it as a child of the specified parent. If the window is mapped, an unmap<#1e>window operation is automatically performed on the specified window. The window is then removed from its current position in the hierarchy and inserted as the child of the specified parent. The window is placed on top in the stacking order with respect to sibling windows. <|,"4<#1e>47">After reparenting the specified window, a :reparent<#1e>no tify event is generated. The override<#1e>redirect attribute of the window is passed on in this event. Window manager clients normally should ignore this event if this attribute is :on. See Section 12, Events and Input, for more information on :reparent<#1e>no tify event processing. Finally, if the specified window was originally mapped, a map<#1e>window operation is automatically performed on it. The X server performs normal exposure processing on formerly obscured windows. It might not generate :exposure events for regions from the initial unmap<#1e>window operation if they are immediately obscured by the final map<#1e>window operation. It is an error if any of the following are true: wThe new parent window is not on the same screen as the old parent window. wThe new parent window is the specified window or an inferior of the specified window. wThe specified window has a :parent<#1e>relative background attribute and the new parent window is not the same depth as the specified window. window <#1f> A window. parent <#1f> The new parent window. x, y <#1f> The position (type int16) of the windo w in its new parent. These coordinates are relative to the parent's origin, and specify the new position of the upper, left, outer corner of the window. translate<#1e>coordinates source source<#1e>x source<#1e>y destination Functioncoordinates", Sort String = "translate<#1e>coordinates"> Returns:
destination<#1e>x <#1f> Type int16 or null.
destination<#1e>y <#1f> Type int16 or null.
destination<#1e>child <#1f> Type window or null. Returns the position defined by source<#1e>x and source<#1e>y (relative to the origin of the source window), expressed as coordinates relative to the origin of the destination window. source <#1f> A window defining the source coordinate system. source<#1e>x, source<#1e>y <#1f> Coordinates (int16) relative to the origin of the source window. destination <#1f> A window defining the destination coordinate system. Mapping 4.6<#04>A window is considered mapped if a map<#1e>window call has been made Windowson it. When windows are first created, they are not mapped because an application may wish to create a window long before it is mapped to the screen. A mapped window may not be visible on the screen for one of the following reasons: wIt is obscured by another opaque sibling window. wOne of its ancestors is not mapped. wIt is entirely clipped by an ancestor. <|,"4<#1e>48">A subwindow will appear on the screen as long as all of its ancestors are mapped and not obscured by a sibling or clipped by an ancestor. Mapping a window that has an unmapped ancestor does not display the window, but marks it as eligible for display when the ancestor becomes mapped. Such a window is called unviewable. When all its ancestors are mapped, the window becomes viewable and remains visible on the screen if not obscured by any sibling or ancestor. Any output to a window not visible on the screen is discarded. :exposure events are generated for the window when part or all of it becomes visible on the screen. A client only receives the :exposure events if it has selected them. Mapping or unmapping a window does not change its stacking order priority. map<#1e>window windowFunctionwindow", Sort String = "map<#1e>window"> Maps the window. This function has no effect when the window is already mapped. If the override<#1e>redirect attribute of the window is :off and another client has selected :substructure<#1e>redirect on the parent window, the X server generates a :map<#1e>request event and the map<#1e>window function does not map the window . Otherwise, the window is mapped, and the X server generates a :map<#1e>notify event. If the window becomes visible and no earlier contents for it are remembered, map<#1e>window tiles the window with its background. If no background was defined for the window, the existing screen contents are not altered, and the X server generates one or more :exposure events. If a backing<#1e>store was maintained while the window was unmapped, no :exposure events are generated. If a backing<#1e>store will now be maintained, a full window exposure is always generated. Otherwise, only visible regions may be reported. Similar tiling and exposure take place for any newly viewable inferiors. map<#1e>window generates :exposure events on each :inp ut<#1e>output window that it causes to become visible. window <#1f> A window. <|,"4<#1e>49">map<#1e>subwindows windowFunctionsubwindows", Sort String = "map<#1e>subwindows"> Maps all child windows for a specified window in top<#1e>to<#1e>botto m stacking order. The X server generates an :exposure event on each newly visible window. This function is much more efficient than mapping each child individually. window <#1f> A window. unmap<#1e>window windowFunctionwindow", Sort String = "unmap<#1e>window"> Unmaps the specified window and causes the X server to generate an :unmap<#1e>notify event. If the specified window is already unmapped, unmap<#1e>window has no effect. Normal exposure processing on formerly obscured windows is performed. Any child window is no longer viewable. Unmapping the window generates :exposure events on windows that were formerly obscured by window and its children. window <#1f> A window. unmap<#1e>subwindows windowFunctionsubwindows", Sort String = "unmap<#1e>subwindows"> Unmaps all child windows for the specified window in bottom to top stacking order. The X server generates an :unmap<#1e>notify event on each child and :exposure events on formerly obscured windows. Using this function is much more efficient than unmapping child windows individually. window <#1f> A window. Destroying 4.7<#04>CLX provides functions to destroy a window or destroy all children of Windowsa window. Note that by default, windows are destroyed when a connection is closed. For further information, see paragraph 2.4, Closing the Display, and paragraph 12.4, Client Termination. destroy<#1e>window windowFunctionwindow", Sort String = "destroy<#1e>window"> Destroys the specified window as well as all of its inferiors. The windows should never again be referenced. If the specified window is mapped, it is automatically unmapped. The window and all of its inferiors are then destroyed, and a :destroy<#1e>notify event is generated for each window. The ordering of the :destroy<#1e>notif y events is such that for any given window being destroyed, :destroy<#1e> notify is generated on the window's inferiors before being generated on the window. The ordering among siblings and across sub<#1e>hierarchies is not otherwise constrained. If the window is a root window, no windows are destroyed. Destroying a mapped window generates :exposure events on other windows that the mapped window obscured. window <#1f> A window. destroy<#1e>subwindows window Functionsubwindows", Sort String = "destroy<#1e>subwindows"> Destroys all inferiors of the specified window, in bottom to top stacking order. The X server generates a :destroy<#1e>notify event for each window. This is much more efficient than deleting many windows individually. The inferiors should never be referenced again. window <#1f> A window. <|,"4<#1e>50"> Pixmaps 4.8<#04>A pixmap is a three<#1e>dimension al array of bits. A pixmap is normally thought of as a two<#1e>dimensional array of pixels, where each pixel can be a value from 0 to , where n is the depth of the pixmap. A pixmap can also be thought of as a stack of n bitmaps. A bitmap is a single bit pixmap of depth 1. CLX provides functions to: wCreate or free a pixmap wTest if an object is a pixmap wTest if two pixmap objects are equal wReturn the pixmap resource ID from a pixmap object Note that pixmaps can only be used on the screen where they were created. Pixmaps are off<#1e>screen server resources that are used for a number of operations. These include defining patterns for cursors or as the source for certain raster operations. create<#1e>pixmap &key :width :height :depth :drawableFunctionpixmap", Sort String = "create<#1e>pixmap"> Returns:
pixmap <#1f> Type pixmap. Creates a pixmap of the specified :width, :height, and :depth. It is valid to pass a window whose class is :input<#1e> only as the :drawable argument. The :width and :height arguments must be nonzero. The :depth must be supported by the screen of the specified :drawable. :width, :height <#1f> The nonzero width and height (type card16). :depth <#1f> The depth (type card8) of the pixmap. :drawable <#1f> A drawable which determines the screen where the pixmap will be used. free<#1e>pixmap pixmapFunctionpixmap", Sort String = "free<#1e>pixmap"> Allows the X server to free the pixmap storage when no other server resources reference it. The pixmap should never be referenced again. pixmap <#1f> A pixmap. pixmap<#1e>display pixmapFunctiondisplay", Sort String = "pixmap<#1e>display"> Returns:
display <#1f> Type display. Returns the display object associated with the specified pixmap . pixmap <#1f> A pixmap. pixmap<#1e>equal pixmap<#1e>1 pixmap<#1e>2Functionequal", Sort String = "pixmap<#1e>equal"> Returns true if the two arguments refer to the same server resource, and nil if they do not. pixmap<#1e>1, pixmap<#1e>2 <#1f> A three<#1e>dimensional array of bits to be tested. pixmap<#1e>id pixmapFunctionid", Sort String = "pixmap<#1e>id"> Returns:
id <#1f> Type resource<#1e>id. Returns the unique resource ID that has been assigned to the specified pix map. pixmap <#1f> A pixmap. <|,"4<#1e>51">pixmap<#1e>p objectFunctionp", Sort String = "pixmap<#1e>p"> Returns:
pixmap <#1f> Type boolean. Returns true if the argument is a pixmap object and nil otherwise. pixmap<#1e>plist pixmapFunctionplist", Sort String = "pixmap<#1e>plist"> Returns:
plist <#1f> A property list. Returns and (with setf) sets the property list for the specified pixmap. This function provides a hook where extensions can add data. pixmap <#1f> A pixmap. <|,"4<#1e>52"> .