|
Xlib Programming Manual (O'Reilly & Associates, Inc.)
|
Glossary
X uses many common terms in unique ways. A good example is
"children." While most, if not all, of these terms are defined where they
are first used in this book, you will undoubtedly find it easier to refresh
your memory by looking for them here.
This glossary is an expanded version of the glossary in
the Xlib-C Language X Interface, by Jim Gettys, Ron Newman, and
Bob Scheifler.
access control list
X maintains lists of hosts that are allowed access to
each server controlling a display. By default, only the local host may
use the display, plus any hosts specified in the access control list
for that display. This access control list can be changed by clients on
the local host. Some server implementations may implement other authorization
mechanisms in addition to or instead of this one. The list can currently
be found in /etc/X#.hosts, where # is the number of the display.
The access control list is also known as the host access list.
active grab
Keyboard keys, the keyboard, pointer buttons, the pointer,
and the server can be grabbed for exclusive use by a client, usually
for a short time period. An active grab causes pointer and keyboard events
to be sent to the grabbing window regardless of the current position of
the pointer. See passive grab.
ancestor
If window W is an inferior of window A,
then A is an ancestor of W. The parent window, the
parent's parent window, and so on are all ancestors of the given window.
The root window is the ancestor of all windows on a given screen.
association table
Association tables provide a fast lookup table
for data that must be searched frequently. Association tables associate
arbitrary information with resource IDs. This is similar to the context
manager, but the resource IDs used with association tables are existing
resources, not created for the purpose of storing data for later retrieval.
atom
An atom is a unique numeric ID corresponding to
a string name. Atoms are used to identify properties, types, and selections
in order to avoid the overhead of passing arbitrary length property name
strings.
background
The background member of a GC defines a window's
background, which consists of either a solid color or a tile pattern. If
a window has a background, it will be repainted automatically by the server
whenever there is an Expose event on the window. If a window does
not have a background, it will be transparent. background can be
set using the GCBackground mask, when the GC is created, or by a
call to XSetBackground(). Default is 1. See also foreground.
backing store
When a server maintains the contents of a window, the
off-screen saved pixels are known as a backing store. This feature
is not available on all servers. Use the DoesBackingStore()s macro
to determine if this feature is supported.
base font name
A font name used to select a family of fonts whose members
may be encoded in various charsets. The CharSetRegistry and CharSetEncoding
fields of an XLFD name identify the charset of the font. A base font name
may be a full XLFD name, with all fourteen '-' delimiters, or an abbreviated
XLFD name containing only the first 13 fields of an XLFD name, up to but
not including CharSetRegistry, with or without the thirteenth '-',
or a non-XLFD name. Any XLFD fields may contain wild cards. When creating
an XFontSet, Xlib accepts from the client a list of one or more
base font names which select one or more font families. They are combined
with charset names obtained from the encoding of the locale to load the
fonts required to render text.
bit gravity
When a window is resized, the contents of the window
are not necessarily discarded. It is possible to request the server (though
no guarantees are made) to relocate the previous contents to some region
of the resized window. This attraction of window contents for some location
of a window is known as bit gravity. For example, an application
that draws a graph might request that the contents be moved into the lower-left
corner, so that the origin of the graph will still appear in the lower-left
corner.
bit plane
On a color or gray-scale display, each pixel has more
than one bit defined. Data in display memory can be thought of either as
pixels (multiple bits per pixel) or as bit planes (one bit plane for each
usable bit in the pixel). The bit plane is an array of bits the
size of the screen.
bitmap
A bitmap is a pixmap with a depth of one bit.
There is no bitmap type in X11. Instead use a pixmap of depth 1.
border
A window can have a border that is zero or more
pixels wide. If a window has a border, the border can have a solid color
or a tile pattern, and it will be repainted automatically by the server
whenever its color or pattern is changed or an Expose event occurs
on the window.
button grab
Specifies a pointer grab that occurs only when a specified
set of keys and/or buttons is held down. This is analogous to a key grab.
See mouse grab.
byte order
The order in which bytes of data are stored in memory
is hardware-dependent. For pixmaps and bitmaps, 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.
character
A member of a set of elements used for the organization,
control, or representation of text (ISO2022, as adapted by XPG3). Note
that in ISO2022 terms, a character is not bound to a coded value until
it is identified as part of a coded character set.
character glyph
The abstract graphical symbol for a character. Character
glyphs may or may not map one-to-one to font glyphs, and may be context-dependent,
varying with the adjacent characters. Multiple characters may map to a
single character glyph.
character set
A collection of characters.
charset
An encoding with a uniform, state-independent mapping
from characters to codepoints. In the ISO2022 framework, this means a coded
character set that does not use any shift sequences. (An encoding which
uses single shifts is state-independent, but is not uniform.) For display
in X, there can be a direct mapping from a charset to one font, if the
width of all characters in the charset is either one or two bytes. A text
string encoded in an encoding such as Shift-JIS cannot be passed directly
to the X server, because the text imaging requests accept only single-width
charsets (either 8 or 16 bits). Charsets which meet these restrictions
can serve as "font charsets". Font charsets strictly speaking map font
indices to font glyphs, not characters to character glyphs. Note that a
single font charset is sometimes used as the encoding of a locale, for
example, ISO8859-1.
children
The children of a window are its first-level subwindows.
All of these windows were created with the same window as parent. A client
creates its top-level window as a child of the root window.
class
There are two uses of the term class in X: window
class and visual class. The window class specifies whether a window is
InputOnly or InputOutput. See Chapter 2, "X Concepts," for
details. The visual class specifies the color model that is used by a window.
See Chapter 7, "Color," for details.
client
An application program connects to the window system
server by an 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. Server resources survive only as long as the connection
remains intact, not as long as a client program remains running. Normally
the connection and the program terminate concurrently, but the client's
resources may live on if XChangeCloseDownMode has been called.
clip mask
In many graphics routines, 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 clip mask
or clipping region. Output to child windows is automatically clipped
to the borders of the parent unless subwindow_mode of the GC is
IncludeInferiors. Therefore, the borders of the parent can be thought
of as a clip mask or clipping region.
clipping region
See clip mask.
coded character
A character bound to a codepoint.
coded character set
A set of unambiguous rules that establishes a character
set and the one-to-one relationship between each character of the set and
its bit representation. (ISO2022, as adapted by XPG3) A definition of a
one-to-one mapping of a set of characters to a set of codepoints. Some
encodings, such as Compound Text, have more than one bit representation
for a given character, and thus are not considered coded character sets.
codepoint
The coded representation of a single character in a coded
character set.
colorcell
An entry in a colormap is known as a colorcell.
An entry contains three values specifying red, green, and blue intensities.
These values are always 16-bit unsigned numbers, with zero being minimum
intensity. The values are truncated or scaled by the server to match the
display hardware. See also colormap.
colormap
A colormap consists of a set of colorcells. A
pixel value indexes into the colormap to produce intensities of red, green,
and blue to be displayed. Depending on hardware limitations, one or more
colormaps may be installed at one time, such that windows associated with
those maps display with true colors. Regardless of the number of installable
colormaps, any number of virtual colormaps can be created. When needed,
a virtual colormap can be installed and the existing installed colormap
might have to be deinstalled. The colormap on most systems is a limited
resource that should be conserved by allocating read-only colorcells whenever
possible and by selecting RGB values from the predefined color database.
Read-only cells may be shared between clients. See also colorcell,
DirectColor, GrayScale, PseudoColor, StaticColor,
StaticGray, and TrueColor.
connection
The IPC path between the server and client is known as
a connection. A client usually (but not necessarily) has one connection
to the server over which requests and events are sent.
containment
A window contains the pointer if the window is
viewable and the hotspot 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.
coordinate system
The coordinate system has X horizontal and Y vertical
pixels, with the origin (0,0) at the upper left. Coordinates are discrete.
Each window and pixmap has its own coordinate system. For a window with
a border, the origin is inside the border.
cursor
A cursor is the visible shape of the pointer on
a screen. It consists of a hotspot, a shape bitmap, a mask bitmap, and
a pair of pixel values. The cursor defined for a window controls the visible
appearance of the pointer when the pointer is in that window.
cut buffer
Cut buffers are a simple but limited method of
client communication, sometimes used instead of the selection mechanism.
Cut buffers are properties of the root window of screen 0 of a display.
They rely on a prior agreement between the two clients regarding the format
of the data to be placed in the cut buffers. The data that can be placed
in a single cut buffer is limited to the maximum size of a single property.
See selection.
depth
The depth of a window or pixmap is the number
of planes that are to be used to represent gray scales or color within
a window.
descendants
See inferiors.
device
Keyboards, mice, tablets, track-balls, button boxes,
etc. are all collectively known as input devices.
DirectColor
DirectColor is a visual class in which a pixel
value is decomposed into three separate subfields for colormap 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 (red, green, and blue) values in the colormap entry can be changed
dynamically. This visual class is normally found on high performance color
workstations. (XGetVisualInfo(), XMatchVisualInfo())
display
A display is a set of one or more screens that
are driven by a single X server. The Xlib Display structure contains
all information about the particular display and its screens as well as
the state that Xlib needs to communicate with the display over a particular
connection.
display function
See logical function.
drawable
Both windows and pixmaps may be used as destinations
in graphics operations. These are collectively known as drawables.
encoding
A set of unambiguous rules that establishes a character
set and a relationship between the characters and their bit representations.
The character set does not have to be fixed to a finite pre-defined set
of characters. Examples are an ISO2022 graphic set, a state-independent
or state-dependent combination of graphic sets, possibly including control
sets, and the X Compound Text encoding. In X, encodings are identified
by a string which appears as: the CharSetRegistry and CharSetEncoding
components of an XLFD name; the name of a charset of the locale for which
a font could not be found; or an atom which identifies the encoding of
a text property or which names an encoding for a text selection target
type. Encoding names should be composed of characters from the X Portable
Character Set.
escapement
The escapement of a string is the distance in pixels
in the primary draw direction from the drawing origin to the origin of
the next character (that is, the one following the given string) to be
drawn.
event
Clients are informed of device input or client request
side effects asynchronously via events. 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. However, other
clients can force events of any type to be sent to any clients. Events
are typically reported relative to a window.
event mask
Events are requested relative to a window. The set of
event types a client requests relative to a window is described using an
event mask. See do_not_propagate_mask and event_mask.
event propagation
Device-related events propagate from the source
window to ancestor windows until a window that has selected that type of
event is reached or until the event is discarded explicitly in a do_not_propagate_mask
attribute.
event source
The smallest window containing the pointer is the source
of a device-related event.
event window
An event window specifies the ID of the window
in which an event appears to have occurred. See source window.
exposure
Window exposure occurs when a window is first
mapped or when another window that obscures it is unmapped, resized, or
moved. Servers do not guarantee to preserve the contents of windows when
windows are obscured or reconfigured. Expose events are sent to
clients to inform them when contents of regions of windows have been lost
and need to be regenerated.
extension
Named 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. Extensions can perform at the same
level as the core Xlib.
font
The font member of a GC specifies which font to
use in graphics requests. A font is an array of characters or other bitmap
shapes such as cursors. font can be set using the GCFont
mask, when the GC is created, or by a call to XSetFont(). The default
font is installation dependent.
font glyph
The abstract graphical symbol for an index into a font.
foreground
The foreground member of a GC defines the pixel
value that will actually be used for drawing pictures or text. foreground
can be set using the GCForeground mask, when the GC is created,
or by a call to XSetForeground(). Default is 0. See also background.
frozen events
Clients can freeze event processing while they
change the screen by grabbing the keyboard or pointer with a certain mode.
These events are queued in the server (not in Xlib) until an XAllowEvents()
call with a counteracting mode is given.
GC
The term GC is used as a shorthand for graphics
context. See graphics context.
glyph
An glyph is an identified abstract graphical symbol
independent of any actual image. (ISO/IEC/DIS 9541-1) An abstract visual
representation of a graphic character, not bound to a codepoint.
glyph image
An image of a glyph, as obtained from a glyph representation
displayed on a presentation surface. (ISO/IEC/DIS 9541-1)
grab
Keyboard keys, the keyboard, pointer buttons, the pointer,
and the server can be grabbed for exclusive use by a client, usually
for a short time period. 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. See active
grab and passive grab.
graphics context
Various information for graphics output is stored in
a graphics context (GC), such as foreground pixel, background pixel,
line width, clipping region, etc. Everything drawn to a window or pixmap
is modified by the GC used in the drawing request. GCs are created or altered
with XChangeGC(), XCopyGC(), and XCreateGC().
gravity
Controls the repositioning of a resized window's contents
(bit gravity) or of a resized parent window's subwindows (window gravity).
See bit gravity and window gravity.
GrayScale
GrayScale is a visual class 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. GrayScale
can be viewed as a degenerate case of PseudoColor. (XGetVisualInfo(),
XMatchVisualInfo())
hint
Certain properties, such as the preferred size of a window,
are referred to as hints, since the window manager makes no guarantee
that it will honor them. See XA_WM_HINTS, XA_WM_NORMAL_HINTS,
XA_WM_SIZE_HINTS, and XA_WM_ZOOM_HINTS.
host access list
See access control list.
host portable character encoding
The encoding of the X Portable Character Set on the host.
The encoding itself is not defined by this standard, but the encoding must
be the same in all locales supported by Xlib on the host. If a string is
said to be in the Host Portable Character Encoding, then it only contains
characters from the X Portable Character Set, in the host encoding.
hotspot
A cursor has an associated hotspot that defines
the point in the cursor which corresponds to the coordinates reported for
the pointer.
icon
An icon is a small marker window that indicates
that a larger "main" window exists and is available but is not currently
mapped on the screen.
identifier
Each resource has an identifier or ID,
a unique value that clients use to name the resource. Any client can use
a resource if it knows the resource ID.
inferiors
The inferiors of a window are all of the subwindows
nested below it: the children, the children's children, etc. The term descendants
is a synonym.
input focus
See keyboard focus.
input manager
Control over keyboard input may be provided by an input
manager client. This job may also be done by the window manager.
InputOnly window
A window that cannot be used for graphics requests is
called an InputOnly window. InputOnly windows are invisible
and can be used to control such things as cursors, input event generation,
and grabbing. InputOnly windows cannot have InputOutput windows
as inferiors.
InputOutput window
The normal kind of window that is used for both input
and output is called an InputOutput window. It usually has a background.
InputOutput windows can have both InputOutput and InputOnly
windows as inferiors.
internationalization
The process of making software adaptable to the requirements
of different native languages, local customs, and character string encodings.
Making a computer program adaptable to different locales without program
source modifications or recompilation.
ISO2022
ISO standard for code extension techniques for 7-bit
and 8-bit coded character sets.
Latin-1
The coded character set defined by the ISO8859-1 standard.
latin portable character encoding
The encoding of the X Portable Character Set using the
Latin-1 codepoints plus ASCII control characters. If a string is said to
be in the Latin Portable Character Encoding, then it only contains characters
from the X Portable Character Set, not all of Latin-1.
locale
The international environment of a computer program defining
the "localized" behavior of that program at run-time. This information
can be established from one or more sets of localization data. ANSI C defines
locale-specific processing by C system library calls. See ANSI C and the
X/Open Portability Guide specifications for more details. In this specification,
on implementations that conform to the ANSI C library, the "current locale"
is the current setting of the LC_CTYPE setlocale category. Associated
with each locale is a text encoding. When text is processed in the context
of a locale, the text must be in the encoding of the locale. The current
locale affects Xlib in its encoding and processing of input method text,
encoding of resource files and values, encoding and imaging of text strings,
and encoding and decoding for interclient text communication.
localization
The process of establishing information within a computer
system specific to the operation of particular native languages, local
customs and coded character sets. (XPG3)
locale name
The identifier used to select the desired locale for
the host C library and X library functions. On ANSI C library compliant
systems, the locale argument to the setlocale function.
key grab
Specifies a keyboard grab that occurs only when
a certain key or key combination is pressed. This is analogous to a button
grab. See keyboard grab.
keyboard focus
The keyboard focus is the window that receives
main keyboard input. By default, the focus is the root window, which has
the effect of sending input to the window that is being pointed to by the
mouse. It is possible to attach the keyboard input to a specific window
with XSetInputFocus(). Events are then sent to the window independent
of the pointer position or, if the owner_events argument is True,
to the window containing the pointer if it is owned by the same client
as the focus window.
keyboard grab
All keyboard input is sent to a specific window (or client,
depending on owner_events) when the keyboard is grabbed. This is
analogous to a mouse grab. This is very much like a temporary keyboard
focus window.
keyboard vector
A keyboard vector represents, in the event structure,
the state of the keyboard; the vector consists of 32 bytes of data, with
one bit for each keyboard key.
keycode
A keycode is a code in the range [8,255], inclusive,
that represents a physical or logical key on the keyboard. The mapping
between keys and keycodes cannot be changed. A list of keysyms is associated
with each keycode.
keysym
A keysym is a #defined symbol which is
a portable representation of the symbol on the cap of a key. Each key may
have several keysyms, corresponding to the key when various modifier keys
are pressed. You should interpret key events according to the keysym returned
by XLookupString() or XLookupKeysym(), since this translates
server-dependent keycodes into portable keysyms. See keycode.
listener
A listener-style window manager sets the keyboard
focus to a particular window when that window is clicked on with a pointer
button. This is the window manager style used with the Apple MacintoshÔ.
logical function
Logical functions control how the source
pixel values generated by a graphics request are combined with the old
destination pixel values already present on the screen or drawable
to result in the final destination pixel values. A logical function
can be changed by a call to XSetFunction(). Sometimes called raster
operations, raster ops, or display functions.
mapping
A window is said to be mapped if a XMapWindow()
or XMapRaised() call has been performed on it. Unmapped windows
are never viewable. Mapping makes a window eligible for display. The window
will actually be displayed if the following conditions are met: (1) all
its ancestors are mapped and (2) it is not obscured by siblings.
mask
A mask specifies which values in a specified structure
should be read when updating the resource values. One bit in the mask is
assigned to every member of its corresponding structure. For example, CWBackgroundPixmap
mask is used to indicate that the background_pixmap member of the
specified window attributes structure is to be read and the corresponding
member in the resource changed. See structure.
modifier key
A key such as Shift or Control that can modify the meaning
of a key event. Shift, Control, Meta, Super, Hyper, Alt, Compose, Apple,
Caps Lock, Shift Lock, and similar keys are called modifier keys.
monochrome
A monochrome screen has only two colors: black
and white. Monochrome is a special case of the StaticGray visual
class, in which there!!! are only two colormap entries.
mouse grab
All mouse input is sent to a specific window (or client,
depending on owner_events) when the mouse is grabbed. This is analogous
to a keyboard grab.
multibyte
A character whose codepoint is stored in more than one
byte; any encoding which can contain multibyte characters; text in a multibyte
encoding. The "char *" null-terminated string datatype in ANSI C. Note
that references in this document to multibyte strings imply only that the
strings may contain multibyte characters.
obscures
Window Aobscures window B if A is
higher in the global stacking order and the rectangle defined by the outside
edges of A intersects the rectangle defined by the outside edges
of B.
occludes
Window Aoccludes window B if both are mapped,
if A is higher in the global stacking order, and if the rectangle
defined by the outside edges of A intersects the rectangle defined
by the outside edges of B. The (fine) distinction between the terms
obscures and occludes is that for obscures, the windows
have to be mapped, while for occludes, they do not. Also note that
window borders are included in the calculation. Note that InputOnly
windows never obscure other windows but can occlude other windows.
owner client
Selections transfer arbitrary information between two
clients. An owner client owns the data representing the value of
a selection, and a requestor client wants it. See selection.
padding
Some bytes are inserted in the data stream to maintain
alignment of the protocol requests on natural boundaries. This padding
increases ease of portability to some machine architectures.
parent window
Each new window is created with reference to another
previously created window. The new window is referred to as the child,
and the reference window as the parent. If C is a child of
P, then P is the parent of C. Only the portion of
the child that overlaps the parent is viewable.
passive grab
Keyboard keys, the keyboard, pointer buttons, the pointer,
and the server can be grabbed for exclusive use by a client, usually for
a short time period. A passive grab causes an active grab to begin
when a certain key or button combination is pressed. The grab becomes active
when the key or button is actually pressed. Before the active grab takes
place, nothing has changed. See active grab.
pixel value
A pixel value is an N-bit value, where
N is the number of bit planes used in a particular window or pixmap.
For a window, a pixel value indexes a colormap to derive an actual color
to be displayed. For a pixmap, a pixel value will be interpreted as a color
in the same way when it is copied into a window.
pixmap
A pixmap is a 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 (2N-1), where N is the depth
(z-axis) of the pixmap. A pixmap can also be thought of as a stack of N
bitmaps.
plane
When a pixmap or a window is thought of as a stack of
bitmaps, each bitmap is called a plane.
plane_mask
Graphics operations can be restricted to affect only
a subset of bit planes in a drawable. The plane_mask member of a
GC is a bit mask describing which planes are to be modified. Default is
all ones. plane_mask can be set using the GCPlaneMask mask,
when the GC is created, or it can be changed by a call to XSetPlaneMask().
pointer
The pointer is the pointing device currently attached
to the cursor and tracked on the screens. This may be a mouse, tablet,
track-ball, or joystick, among other things.
pointer grab
A client can actively grab control of the pointer,
causing button and motion events to be sent to the grabbing client rather
than to the client indicated by the pointer.
pointing device
A pointing device is typically a mouse or tablet
or some other device with effective two-dimensional motion. There is only
one visible cursor defined by the core protocol, and it tracks whatever
pointing device is currently attached as the pointer.
position
A window has a position, which locates its upper-left
corner relative to its parent's corner.
POSIX
Portable Operating System Interface, ISO/IEC 9945-1 (IEEE
Std 1003.1).
POSIX Portable Filename Character Set
The set of 65 characters which can be used in naming
files on a POSIX-compliant host that are correctly processed in all locales.
The set is:
a..z A..Z 0..9 ._-
shift sequence
ISO2022 defines control characters and escape sequences
which temporarily (single shift) or permanently (locking shift) cause a
different character set to be in effect ("invoking" a character set).
property
Windows may have associated properties, each 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 purpose data
storage and intercommunication mechanism for clients. There is, however,
a list of predefined properties and property types so that clients might
share information such as resize hints, program names, and icon formats
with a window manager via properties. In order to avoid passing arbitrary
length property name strings, each property name is associated with a corresponding
integer value known as an atom. See also atom.
property list
The property list of a window is the list of properties
that have been defined for that window.
PseudoColor
PseudoColor is a visual class in which a pixel
value indexes the colormap entry 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. (XGetVisualInfo(),
XMatchVisualInfo())
quark
A quark is an integer ID that identifies a name,
class, or type string for the resource manager. Like atoms and resource
IDs, quarks eliminate the need to pass strings of arbitrary length over
the network. The quark type is XrmQuark, and the types XrmName,
XrmClass, and XrmRepresentation are also defined to be XrmQuark.
raise
Changing the stacking order of a window so as to occlude
all sibling windows is to raise that window.
raster operation
See logical function.
real estate
A window management style characterized by the input
being sent to whichever window the pointer is in. This is the most common
style of input management used in X.
rectangle
A rectangle specified by [x,y,w,h]
has an (infinitely thin) outline path with corners at [x,y],
[x+w,y], [x+w,y+h] and [x,y+h].
When a rectangle is filled, the lower-right edges are not drawn. For example,
if w=h=0, nothing would be drawn. For w=h=1, a single pixel
would be drawn.
redirect
Window managers (or other clients) may wish to enforce
window layout policy in various ways. When a client attempts to change
the size or position of a window, the operation may be redirected
to the window manager, rather than actually being performed. Then the window
manager (or other client that redirected the input) is expected to decide
whether to allow, modify, or deny the requested operation before making
the call itself.
reparenting
The window manager often reparents the top-level
windows of each application in order to add a titlebar and perhaps resize
boxes. In other words, a window with a titlebar is inserted between the
root window and each top-level window. See also save-set.
reply
Information requested by a client, by routines whose
names include the word Query, is sent back to the client with a
reply. Both events and replies are multiplexed on the same connection.
Requests that require replies are known as round-trip requests.
Most requests do not generate replies. Some requests generate multiple
replies. See round-trip request.
request
A command to the server is called a request. It
is a single block of data sent over the connection to the server.
requestor client
Selections transfer arbitrary information between two
clients. An owner client owns the data representing the value of a selection,
and a requestor client wants it. See selection.
resource
Windows, pixmaps, cursors, fonts, graphics contexts,
and colormaps are known as resources. They all have unique identifiers
(IDs) 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.
resource manager
Every application should provide command line options
that allow users to set colors or patterns for the window border and background;
set foreground colors for drawing; start the application at a desired size,
position, and configuration; select fonts; and so on. An application must
also allow users to specify their own default values (user preferences)
for each of these options. There are three and sometimes four sets of options
that need to be read and merged: the program's defaults, the user's defaults
stored in the root window's XA_RESOURCE_MANAGER property or in the
user's .Xdefaults file, and the command line arguments. The order
in which the various options are merged is important. A value for an option
in the user's defaults should override the program's default for that option,
but a value on the command line would override both the program's and the
user's default value. The routines and database structures used for managing
user preferences are collectively referred to as the resource manager.
RGB values
Red, green, and blue intensity values are used to define
a color. These values are always represented as 16-bit unsigned numbers,
with 0 the minimum intensity and 65535 the maximum intensity. The X server
scales these values to match the display hardware.
root
The root of a window, pixmap, or graphics context
(GC) is the same as the root of whatever drawable was used when the window,
pixmap, or GC was created. These resources can be used only on the screen
indicated by this window. See root window.
root window
Each screen has a root window covering it. It
cannot be reconfigured or unmapped but otherwise acts as a full-fledged
window. A root window has no parent.
round-trip request
A request to the server that generates a reply is known
as a round-trip request. Requests that require replies should be
avoided when possible since they introduce network delays. See reply.
save-set
The save-set of a client is a list of other clients'
windows which, if they are inferiors of one of the client's windows at
connection close, should not be destroyed and which should be reparented
and remapped if the client is unmapped. Save-sets are typically used by
window managers to avoid lost windows if the manager should terminate abnormally.
See reparenting for more background information.
scan line
A scan line is a 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 values.
scan line order
An image represented in scan line order contains
scan lines ordered by increasing Y coordinate values.
screen
A server may provide several independent screens,
which may or may not have physically independent monitors. For instance,
it is possible to treat a color monitor as if it were two screens, one
color and the other black and white. There is only a single keyboard and
pointer shared among the screens. A Screen structure contains the
information about that screen and is a member of the Display structure.
selection
Selections are a means of communication between
clients using properties and events. From the user's perspective, a selection
is an item of data which can be highlighted in one instance of an application
and pasted into another instance of the same or a different application.
The client that highlights the data is the owner, and the client into which
the data is pasted is the requestor. Properties are used to store the selection
data and the type of the data, while events are used to synchronize the
transaction and to allow the requestor to indicate the type it prefers
for the data and to allow the owner to convert the data to the indicated
type if possible. See cut buffer.
server
The 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.
It controls a single keyboard and pointer and one or more screens that
make up a single display.
server grab
The 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 a transient state
to perform such tasks as rubber-banding and pop-up menus or to execute
requests indivisibly.
sibling
Children of the same parent window are known as sibling
windows.
source window
A source window specifies the ID of the window
in which an event originally happens. See event window.
stacking order
Sibling windows may stack on top of each other, obscuring
lower windows. This is similar to papers on a desk. The relationship between
sibling windows is known as the stacking order. The first window
in the stacking order is the window on top.
state-dependent encoding
An encoding in which an invocation of a charset can apply
to multiple characters in sequence. A state-dependent encoding begins in
an "initial state" and enters other "shift states" when specific "shift
sequences" are encountered in the byte sequence. In ISO2022 terms, this
means use of locking shifts, not single shifts.
state-independent encoding
Any encoding in which the invocations of the charsets
are fixed, or span only a single character. In ISO2022 terms, this means
use of at most single shifts, not locking shifts.
STRING encoding
Latin-1, plus tab and newline.
StaticColor
StaticColor is a visual class which represents
a multiplane color screen with a predefined and read-only hardware colormap.
It can be viewed as a degenerate case of PseudoColor. (XGetVisualInfo(),
XMatchVisualInfo())
StaticGray
StaticGray is a visual class which represents
a multiplane monochrome screen with a predefined and read-only hardware
colormap. It can be viewed as a degenerate case of GrayScale, in
which the gray values are predefined and read-only. Typically, the values
are linearly increasing ramps. (XGetVisualInfo(), XMatchVisualInfo())
Status
Many Xlib functions return a Status of zero if
it fails and nonzero if it succeeds. If the function does not succeed,
its arguments are not changed.
stipple
The stipple member of a GC defines a single-plane
pixmap that is used to tile a region. Bits set to 1 in the stipple are
drawn with the foreground pixel value; bits set to 0, with the background
pixel value. stipple can be set using the GCStipple mask,
when the GC is created, or by a call to XSetStipple(). Default is
the pixmap filled with ones. See tile.
STRING encoding
Latin-1, plus tab and newline.
structure
Pointers to structures are the major way of specifying
data to and returning data from Xlib routines. If the routine returns data,
the returned value will be a pointer to the data structure, unless the
routine returns more then one structure, in which case one or all of the
structures will be arguments. When setting the characteristics of an X
resource, such as a set of window attributes or a graphics context, both
a structure and a mask are specified as arguments. See mask.
subwindow_mode
The subwindow_mode member of a GC controls whether
subwindows obscure their parent. subwindow_mode can be set using
the GCSubwindowMode mask, when the GC is created, or by a call to
XSetSubwindowMode(). Possible values are ClipByChildren (the
default) or IncludeInferiors.
tile
The tile member of a GC defines a pixmap used
for patterning an area. A tile has the same depth as the drawable it is
used to pattern. tile can be set using the GCTile mask, when
the GC is created, or by a call to XSetTile(). Default is the pixmap
is filled with the foreground pixel. See stipple.
time
A time value in X is expressed in milliseconds,
typically since the last server reset. Time values wrap around (after about
49.7 days). One time value, represented by the constant CurrentTime,
is used by clients to represent the current server time.
top-level window
A child of the root window is referred to as a top-level
window.
TrueColor
TrueColor is a visual class which represents a
high performance multiplane display with predefined and read-only RGB values
in its hardware colormap. It can be viewed as a degenerate case of DirectColor,
in which the subfields in the pixel value directly encode the corresponding
RGB values. Typically, the values are linearly increasing ramps. (XGetVisualInfo(),
XMatchVisualInfo())
type property
A type property is used to identify the interpretation
of property data. Types are completely uninterpreted by the server; they
are solely for the benefit of clients.
viewable
A 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, since it may be obscured by other windows.
visible
A 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 obscured by any other window.
visual
The specifications for color handling for a drawable,
including visual class, depth, RGB/pixel, etc., are collectively referred
to as a visual and are stored in a structure of type Visual.
The visual accounts for the differences between various types of hardware
in determining the way pixel values are translated into visible colors
within a window. A screen may support only one of several types of visuals.
visual class
This attribute accounts for the differences between various
types of display hardware in determining the way in which pixel values
are translated into visible colors within a particular window. See DirectColor,
GrayScale, PseudoColor, StaticColor, StaticGray,
and TrueColor.
whitespace
Any spacing character. On implementations that conform
to the ANSI C library, whitespace is any character for which isspace
returns True.
window
An X server controls a bitmapped screen. In order to
make it easier to view and control many different tasks at the same time,
this screen can be divided up into smaller areas called windows. A window
is a rectangular area of any size that works in several ways like a miniature
screen. Windows in the screen can be arranged so they all are visible or
so they cover each other completely or partially. Each window can be involved
in a different activity, and the windows currently in use are placed so
they are at least partially visible.
window gravity
When windows are resized, subwindows may be repositioned
automatically relative to an edge, a corner, or the center of the window.
This attraction of a subwindow to some part of its parent is known as window
gravity.
window manager
Manipulation of windows on the screen is provided by
a window manager client. The window manager has authority over the
arrangement of windows on the screen and the user interface for selecting
which window receives input. See also redirect.
X Portable Character Set
A basic set of 97 characters which are assumed to exist
in all locales supported by Xlib. This set contains the following characters:
a..z A..Z 0..9
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
<space>, <tab>, and <newline>
This is the left/lower half (also called the G0 set)
of the graphic character set of ISO8859-1 plus <space>, <tab>, and
<newline>. It is also the set of graphic characters in 7-bit ASCII plus
the same three control characters. The actual encoding of these characters
on the host is system dependent; see the Host Portable Character Encoding.
XLFD
The X Logical Font Description Conventions that define
a standard syntax for structured font names.
XYPixmap
XYPixmap specifies the format for an image. The
data for an image is said to be in XYPixmap format if it is organized
as a set of bitmaps representing individual bit planes. (XCreateImage(),
XGetImage(), XPutImage())
zoomed window
Some applications not only have a normal size for their
top-level window and an icon but also have a zoomed window size.
This could be used in a painting program (similar to the MacPaintÔ
fat bits). The zoomed window size preferences can be specified in the window
manager hints.
ZPixmap
ZPixmap specifies the format for an image. The
data for an image is said to be in ZPixmap format if it is organized
as a set of pixel values in scan line order. (XGetImage(), XPutImage())
References
ANSI Programming Language--C: ANSI X3.159-1989, December
14, 1989.
Draft Proposed Multibyte Extension of ANSI C, Draft 1.1,
November 30, 1989 SC22/C WG/SWG IPSJ/ITSCJ Japan.
X/Open Portability Guide, Issue 3, December 1988 (XPG3),
X/Open Company, Ltd, Prentice-Hall, Inc. 1989. ISBN 0-13-685835-8. (See
especially Volume 3: XSI Supplementary Definitions.)
POSIX: Information Technology--Portable Operating System
Interface (POSIX) - Part 1: System Application Program Interface (API)
[C Language], ISO/IEC 9945-1.
ISO2022: Information processing--ISO 7-bit and 8-bit coded
character sets--Code extension techniques.
ISO8859-1: Information processing--8-bit single-byte coded
graphic character sets--Part 1: Latin alphabet No. 1.
Text of ISO/IEC/DIS 9541-1, Information Processing--Font
Information Interchange--Part 1: Architecture.
Xlib Programming Manual (O'Reilly & Associates, Inc.)
|