", 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>"> Glossary ) (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))> Glossary ) (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))> CLX Programmer's Reference ) (E10,0,0,0,1,1,0.053333,1,14.1,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.0 66667,6))> CLX Programmer's Reference ) (E10,0,0,0,1,0,0.053333,1,14.1,0,0,1,0,0,0,0.007813,1,0,1,0.066667,0.066667,6, 6,0,0.066667,6))> <|,201>GLOSSARY a access control listX maintains a list of hosts from which client programs can be run. By default, only programs on the local host can use the display, plus any hosts specified in an initial list read by the server. This access control list can be changed by clients on the local host. Some server implementations can also implement other authorization mechanisms in addition to or in place of this mechanism. The action of this mechanism can be conditional based on the authorization protocol name and data received by the server at connection setup. actionA function that is designed to handle an input event. CLUE input processing consists of matching an event with an event specification found in a contact's event<#1e>translations slot and then calling actions associated with the matching event specification. active grabA grab is active when the pointer or keyboard is actually owned by the single grabbing client. ancestorsIf W is an inferior of A, then A is an ancestor of W. atomA unique ID corresponding to a string name. Atoms are used to identify properties, types, and selections. b backing storeWhen a server maintains the contents of a window, the off<#1e>screen saved pixels are known as a backing store. before actionAn action of a contact<#1e>display that is called when an event is dispatched to a contact, but before any other contact input processing is performed. bit gravityWhen a window is resized, the contents of the window are not necessarily discarded. It is possible to request the server to relocate the previous contents to some region of the window. This attraction of window contents for some location of a window is known as bit gravity. bitmapA pixmap of depth one. button grabbingButtons on the pointer can be passively grab bed by a client. When the button is pressed, the pointer is then actively grabbed by the client. byte orderFor image (pixmap/bitmap) data, byte order is defined by the server, and clients with different native byte ordering must swap bytes as necessary. For all other parts of the protocol, the byte order is defined by the client, and the server swaps bytes as necessary. c callbackA function that represents a connection between a contact and the rest of an application program. A contact calls a callback function in order to report the results of the user interface component that it represents. childrenFirst<#1e>level subwindows of a window. <|,202>class eventEvent translations that belong to all instances of a contact class. A class event translationstranslation is created by the defevent macro. class resourcesResources defined for each instance of a contact class. Also see constraint resources. clickA :button<#1e>press event followed immediately by a :button<#1e>release event for the same button, with no intervening change in pointer position or modifier key state. clientAn application program connects to the window system server by some interprocess communication (IPC) path, such as a TCP connection or a shared memory buffer. This program is referred to as a client of the window system server. More precisely, the client is the IPC path itself. A program with multiple paths open to the server is viewed as multiple clients by the protocol. Resource lifetimes are controlled by connection lifetimes, not by program lifetimes. clipping regionsIn a graphics context, a bitmap or list of rectangles can be specified to restrict output to a particular region of the window. The image defined by the bitmap or rectangles is called a clipping region. colormapA set of entries defining color values. The colormap associated with a window is used to display the contents of the window. Each pixel value indexes the colormap to produce RGB values that drive the guns of a monitor. Depending on hardware limitations, one or more colormaps can be installed at one time, such that windows associated with those maps display with correct colors. compositeA subclass of contact representing contacts that are the parents of other contacts. A composite provides geometry management and input focus management services for the contacts that are its children. complete resourceA list of symbols containing the class of the contact, the class of the contact's classparent (and so on), and the class of the contact<#1e>display to which the contact belongs. The complete resource class is one of the two items used as a key by a CLUE application in order to access a contact resource value in a resource database. complete resourceA list of symbols containing the name of the contact, the name of the namecontact's parent (and so on), and the name of the contact<#1e>display to which the contact belongs. The complete resource name is one of the two items used as a key by a CLUE application in order to access a contact resource value in a resource database. connectionThe IPC path between the server and client program. A client program typically has one connection to the server over which requests and events are sent. constraint resourcesResources defined for each child belonging to a member of a composite class. Constraint resources are typically used to control the parent's geometry management policy. Also see class resources. contactThe basic CLUE object for programming a user interface. contact<#1e>displayThe CLUE object type that represents a connection to an X server and that supports an event loop for application input. contact initializationThe process of collecting initial values for all contact attributes. No server resources (windows and so on) are actually allocated until contact realization. contact realizationThe process of allocating contact resources. This process completes contact creation. <|,203>containmentA window contains the pointer if the window is viewable and the hot spot of the cursor is within a visible region of the window or a visible region of one of its inferiors. The border of the window is included as part of the window for containment. The pointer is in a window if the window contains the pointer but no inferior contains the pointer. contentThe single child of a shell. The basic geometry management policy implemented by the shell class constrains a shell and its content to have the same width and height; size changes to one are automatically applied to the other. coordinate systemThe coordinate system has x horizontal and y vertical, with the origin [0, 0] at the upper left. Coordinates are discrete and are in terms of pixels. Each window and pixmap has its own coordinate system. For a window, the origin is at the inside upper left, inside the border. cursorThe visible shape of the pointer on a screen. It consists of a hot<#1e>spot, a source bitmap, a shape bitmap, and a pair of colors. The cursor defined for a window controls the visible appearance when the pointer is in that window. d depthThe depth of a window or pixmap is number of bits per pixel it has. The depth of a graphics context is the depth of the drawables it can be used in conjunction with for graphics output. descendantIf W is an inferior of A, then W is a descendant of A. deviceKeyboards, mice, tablets, track<#1e>balls, button boxes, and so forth, are all collectively known as input devices. The core protocol only deals with two devices: the keyboard and the pointer. direct colorA class of colormap in which a pixel value is decomposed into three separate subfields for indexing. One subfield indexes an array to produce red intensity values, the second subfield indexes a second array to produce blue intensity values, and the third subfield indexes a third array to produce green intensity values. The RGB values can be changed dynamically. dispatching an eventThe process of finding the appropriate contact and its actions. double<#1e>clickA sequence of two clicks of the same button in rapid succession. drawableBoth windows and pixmaps can be used as sources and destinations in graphics operations. These are collectively known as drawables. However, an :input<#1e>only window cannot be used as a source or destination in a graphics operation. e eventClients receive information asynchronously via events . These events can be either asynchronously generated from devices, or generated as side effects of client requests. Events are grouped into types; events are never sent to a client by the server unless the client has specifically asked to be informed of that type of event, but clients can force events to be sent to other clients. Events are typically reported relative to a window. <|,204>event compressionIgnoring (or compressing) certain redundant input events. Compression of redundant events is controlled by the class slots compress<#1e>exposures and compress<#1e>motio n, which are shared by all instances of a contact class. event loopThe fundamental application control structure: wait for an event, figure out how to handle it, process the event, then go back and wait for the next one. In CLUE, the event loop is implemented using the process<#1e>next<#1e>event function. event maskEvents are requested relative to a window. The set of event types a client requests relative to a window are described using an event mask. event propagationDevice<#1e>related events propagate from the source window to ancestor windows until some client has expressed interest in handling that type of event, or until the event is discarded explicitly. event specificationA notation for describing a certain sort of event. CLUE input processing consists of matching an event with an event specification found in a contact's event<#1e>transl ations slot and then calling actions associated with the matching event specification. event synchronizationCertain race conditions are possible when demultiplexing device events to clients (in particular deciding where pointer and keyboard events should be sent when in the middle of window management operations). The event synchronization mechanism allows synchronous processing of device events. event sourceThe smallest window containing the pointer is the source of a device related event. event translationThe process of determining which contact action functions will be executed. An event translation is a list found in a contact's event<#1e>translations slot associating an event specification with one or more action names. Also see class event translations. exposure eventServers do not guarantee to preserve the contents of windows when windows are obscured or reconfigured. Exposur e events are sent to clients to inform them when contents of regions of windows have been lost. extensionNamed extensions to the core protocol can be defined to extend the system. Extension to output requests, resources, and event types are all possible, and expected. f focus windowAnother term for the input focus. fontA matrix of glyphs (typically characters). The protocol does no translation or interpretation of character sets. The client simply indicates values used to index the glyph array. A font contains additional metric information to determine inter<#1e>glyph and inter<#1e>line spacing. g geometryThe process whereby a composite controls the geometrical properties of its managementchild contacts; the composite is referred to as the geometry manager. glyphAn image, typically of a character, in a font. <|,205>grabKeyboard keys, the keyboard, pointer buttons, the pointer, and the server can be grabbed for exclusive use by a client. In general, these facilities are not intended to be used by normal applications but are intended for various input and window managers to implement various styles of user interfaces. gcontextShorthand for graphics context. graphics contextVarious information for graphics output is stored in a graphics context (or gcontext), such as foreground pixel, background pixel, line width, clipping region, and so forth. A graphics context can only be used with drawables that have the same root and the same depth as the graphics context. gray scaleA degenerate case of pseudo color, in which the red, green, and blue values in any given colormap entry are equal, thus producing shades of gray. The gray values can be changed dynamically. h hot spotA cursor has an associated hot spot that defines a point in the cursor that corresponds to the coordinates reported for the pointer. i identifierEach resource has an identifier, a unique value associated with it that clients use to name the resource. An identifier can be used over any connection to name the resource. inferiorsAll of the subwindows nested below a window: the children, the children's children, and so on. initializationSee contact initialization. input eventSee event. input focusNormally a window defining the scope for processing of keyboard input. If a generated keyboard event would normally be reported to this window or one of its inferiors, the event is reported normally; otherwise, the event is reported with respect to the focus window. The input focus also can be set such that all keyboard events are discarded and that the focus window is dynamically taken to be the root window of whatever screen the pointer is on at each keyboard event. input<#1e>only windowA window that cannot be used for graphics requests. input<#1e>only windows are invisible, and can be used to control such things as cursors, input event generation, and grabbing. input<#1e>only windows cannot have input/output windows as inferiors. input/output windowThe normal kind of opaque window, used for both input and output. Input/output windows can have both input/o utput and input<#1e>only windows as inferiors. insensitivitySee sensitivity. interactive<#1e>streamA contact subclass designed to integrate CLUE with the conventional stream<#1e>based I/O of Common Lisp. <|,206> k key grabbingKeys on the keyboard can be passively grabbed by a client. When the key is pressed, the keyboard is then actively grabbed by the client. keyboard grabbingA client can actively grab control of the keyboard, and key events will be sent to that client rather than the client to which the events would normally have been sent. keysymAn encoding of a symbol on a keycap on a keyboard. m managedA contact under geometry management control. mappedA window is said to be mapped if a map call has been performed on it. Unmapped windows and their inferiors are never viewable or visible. modifier keysSHIFT, CONTROL, META, SUPER, HYPER, ALT, Compose, Apple, CAPS LOCK, Shift Lock, and similar keys are called modifie r keys. monochromeA special case of static gray, in which there are only two colormap entries. o obscureA window is obscured if some other window obscures it. For example, window A obscures window B if: wBoth windows are viewable :input<#1e>output windows wWindow A is higher in the global stacking order than window B wThe rectangle defined by the outside edges of window A intersects the rectangle defined by the outside edges of window B Notice that window borders are included in the calculation, and that a window can be obscured and yet still have visible regions. See occlude (there is a fine distinction between obscure and occlude). occludeA window is occluded if some other window occludes it. For example, window A occludes window B if: wBoth windows are mapped wWindow A is higher in the global stacking order than window B wThe rectangle defined by the outside edges of window A intersects the rectangle defined by the outside edges of window B Notice that window borders are included in the calculation. See obscure (there is a fine distinction between occlude and obscure). <|,207>override<#1e>shellA subclass of shell used to override the window manager. This subclass contains pop<#1e>up menus and other temporary objects that the user can never resize and so on. p paddingSome padding bytes are inserted in the data stream to maintain alignment of the protocol requests on natural boundaries. This increases ease of portability to some machine architectures. parent windowIf C is a child of P, then P is the parent of C. passive grabGrabbing a key or button is a passive grab. The grab activates when the key or button is actually pressed. pixel valueAn n<#1e>bit value, where n is the number of bit planes used in (that is, the depth of) a particular window or pixmap. For a window, a pixel value indexes a colormap to derive an actual color to be displayed. pixmapA three dimensional array of bits. A pixmap is normally thought of as a two dimensional array of pixels, where each pixel can be a value from 0 to , where n is the depth (z axis) of the pixmap. A pixmap can also be thought of as a stack of n bitmaps. planeWhen a pixmap or window is thought of as a stack of bitmaps, each bitmap is called a plane or bit plane. plane maskGraphics operations can be restricted to only affect a subset of bit planes of a destination. A plane mask is a bit mask describing which planes are to be modified, and it is stored in a graphics context. pointerThe pointing device attached to the cursor and tracked on the screens. pointer grabbingA client can actively grab control of the pointer, and button and motion events will be sent to that client rather than the client to which the events would normally have been sent. pointing deviceTypically a mouse or tablet, or some other device with effective dimensional motion. There is only one visible cursor defined by the core protocol, and it tracks whatever pointing device is attached as the pointer. pop<#1e>upOne of the uses of a top<#1e>level shell (for example, a menu that pops up when a command button contact is activated). Setting the state of a shell to :mapped is sometimes referred to as mapping or popping up the shell. Setting the state of a shell to :withdrawn or :iconic is sometimes referred to as unmapping or popping down the shell. propertyWindows can have associated properties, consisting of a name, a type, a data format, and some data. The protocol places no interpretation on properties; they are intended as a general<#1e>purp ose naming mechanism for clients. For example, clients might share information such as resize hints, program names, and icon formats with a window manager via properties. property listThe list of properties that have been defined for a window. pseudo colorA class of colormap in which a pixel value indexes the colormap to produce independent red, green, and blue values. That is, the colormap is viewed as an array of triples (RGB values). The RGB values can be changed dynamically. <|,208> r realizationSee contact realization. redirecting controlWindow managers (or client programs) may choose to enforce window layout policy in various ways. When a client attempts to change the size or position of a window, the operation can be redirected to a specified client, rather than the operation actually being performed. replyInformation requested by a client program is sent back to the client with a reply. Both events and replies are multiplexed on the same connection. Most requests do not generate replies. However, some requests generate multiple replies. representation typeThe type of representation of a resource value. For example, a color value might be represented either as a namestring (<#7f>red"), a pixel value, an RGB triplet, an HSV triplet, and so on. requestA command to the server is called a request. It is a single block of data sent over a connection. resource A value of the user interface that can be changed by the user in a resource database via CLX functions add<#1e>resou rce, get<#1e>resource, and so forth. See server resource. resource class,See complete resource class. complete resource databaseConceptually, a set of resource name/value pairs (or resource bindings). CLX defines functions for storing and retrieving interface resources from a resource database. resource name,See complete resource name. complete RGB valuesRed, green, and blue intensity values used to define color. These values are always represented as 16<#1e>bit unsigned numbers, with zero being the minimum intensity and 65535 being the maximum intensity. The values are scaled by the server to match the display hardware. rootA special composite contact used to represent an entire display screen. root windowEach screen has a root window covering it. It cannot be reconfigured or unmapped, but otherwise acts as a full<#1e>fledged window. A root window has no parent. s save setThe save set of a client is a list of other client's windows that, if they are inferiors of one of the client's windows at connection close, should not be destroyed and that should be remapped if it is unmapped. Save sets are typically used by window managers to avoid lost windows if the manager should terminate abnormally. scanlineA list of pixel or bit values viewed as a horizontal row (all values having the same y coordinate) of an image, with the values ordered by increasing x coordinate. scanline orderAn image represented in scanline order contains scanlines ordered by increasing y coordinate. <|,209>screenA server can provide several independent screen s, which typically have physically independent monitors. This would be the expected configuration when there is only a single keyboard and pointer shared among the screens. selectionA selection can be thought of as an indirect property with dynamic type. That is, rather than having the property stored in the server, it is maintained by some client (the owner). A selection is global in nature, being thought of as belonging to the user (but maintained by clients), rather than being private to a particular window subhierarchy or a particular set of clients. When a client asks for the contents of a selection, it specifies a selection target type. This target type can be used to control the transmitted representation of the contents. For example, if the selection is <#7f>the last thing the user clicked on" and that is currently an image, then the target type might specify whether the contents of the image should be sent in XY Format or Z Format. The target type can also be used to control the class of contents transmitted; that is, asking for the looks (fonts, line spacing, indentation, and so forth) of a paragraph selection, rather than the text of the paragraph. The target type can also be used for other purposes; the semantics is not constrained by the protocol. sensitivityA condition in which a user interface component of an application will accept input. Conversely, when a contact is insensitive, events of particular types are not dispatched to the contact and are ignored. serverThe server provides the basic windowing mechanism. It handles IPC connections from clients, demultiplexes graphics requests onto the screens, and multiplexes input back to the appropriate clients. server grabbingThe server can be grabbed by a single client for exclusive use. This prevents processing of any requests from other client connections until the grab is complete. This is typically only a transient state for such things as rubber<#1e>banding and pop<#1e>up menus, or to execute requests indivisibly. server resourceWindows, pixmaps, cursors, fonts, gcontexts, and colormaps are known as resources. They all have unique identifiers associated with them for naming purposes. The lifetime of a resource is bounded by the lifetime of the connection over which the resource was created. See resource. shellA composite that handles the duties required by standard conventions for top<#1e>level X windows. siblingChildren of the same parent window are known as sibling windows. static colorA degenerate case of pseudo color in which the RGB values are predefined and read<#1e>only. static grayA degenerate case of gray scale in which the gray values are predefined and read<#1e>only. The values are typically (near<#1e>)linear increasing ramps. stacking orderSibling windows can stack on top of each other. Windows above both obscure and occlude lower windows. This is similar to paper on a desk. The relationship between sibling windows is known as the stacking order. stateA slot of contact that controls the visual effect of the contact. stippleA bitmap that is used to tile a region to serve as an additional clip mask for a fill operation with the foreground color. <|,210> t tileA pixmap can be replicated in two dimensions to tile a region. The pixmap itself is also known as a tile. timerA CLUE object that provides support for animation and other types of time<#1e>sensitive user interfaces. A timer causes :tim er events to be dispatched to a specific contact for processing. timestampA time value, expressed in milliseconds, typically since the last server reset. Timestamp values wrap around (after about 49.7 days). The server, given its current time is represented by timestamp T, always interprets timestamps from clients by treating half of the timestamp space as being earlier in time than T and half of the timestamp space as being later in time than T. One timestamp value (named CurrentTime) is never generated by the server; this value is reserved for use in requests to represent the current server time. top<#1e>level contactA contact whose parent is a root. A top<#1e>level contact is usually a composite at the top of a hierarchy of other contacts created by an application program. top<#1e>level<#1e>sessionA subclass of shell that is used to communicate with a session manager. top<#1e>level<#1e>shellA subclass of shell that provides full window manager interaction. transient<#1e>shellA subclass of shell that a window manager typically will unmap when its owner becomes unmapped or iconified and will not allow to be individually iconified. true colorA degenerate case of direct color in which the subfields in the pixel value directly encode the corresponding RGB values. That is, the colormap has predefined read<#1e>only RGB values. The values are typically (near<#1e>)linear increasing ramps. typeAn arbitrary atom used to identify the interpretation of property data. Types are completely uninterpreted by the server; they are solely for the benefit of clients. u unmanagedA contact that is not under geometry management control. user interfaceA set of abstract interface objects used to control the dialog between an application and its human user. v viewableA window is viewable if it and all of its ancestors are mapped. This does not imply that any portion of the window is actually visible. Graphics requests can be performed on a window when it is not viewable, but output will not be retained unless the server is maintaining backing store. visibleA region of a window is visible if someone looking at the screen can actually see it; that is, the window is viewable and the region is not occluded by any other window. <|,211> w window gravityWhen windows are resized, subwindows can be repositioned automatically relative to some position in the window. This attraction of a subwindow to some part of its parent is known as window gravity. window managerManipulation of windows on the screen, and much of the user interface (policy) is typically provided by a window manager client. window manager shellA subclass of shell called wm <#1e>shell that interacts with the window manager. x XY FormatThe data for a pixmap is said to be in XY Format if it is organized as a set of bitmaps representing individual bit planes, with the planes appearing from most to least significant in bit order. z Z FormatThe data for a pixmap is said to be in Z Format if it is organized as a set of pixel values in scanline order. <|,212> .