Appendix A Glossary

abstract panes
Panes that are defined only in terms of their programmer interface or behavior. The protocol for an abstract pane specifies the pane in terms of its overall purpose, rather than in terms of its specific appearance or particular interactive details, so that multiple implementations of the pane are possible, each defining its own look and feel. CLIM selects the appropriate pane implementation, based on factors outside the control of the application. See
adaptive pane
.

adaptive panes
A subset of the
abstract panes
(q.v.), adaptive panes are defined to integrate well across all CLIM operating platforms.

adaptive toolkit
A uniform interface to the standard "widget" or "gadget" toolkits available in many environments. The adaptive toolkit enables a single user interface to adopt the individual look and feel of a variety of host systems.

adopted
A sheet is said to be adopted when it has a parent sheet. A sheet becomes the child of another sheet by adoption.

affine transformation
See
transformation
.

ancestors
The parent of a sheet or an output record, and all of its ancestors, recursively.

applicable
A presentation translator is said to be applicable when the pointer is pointing to a presentation whose presentation type matches the current input context, and the other criteria for translator matching have been met.

application frame
1. A program that interacts directly with a user to perform some specific task.
2. A Lisp object that holds the information associated with such a program, including the panes of the user interface and application state variables.

area
A region that has two dimensions, length and width.

background ink
Ink that has the same design as the background, so that drawing with it results in erasure.

bounded design
A design that is transparent everywhere beyond a certain distance from a certain point. Drawing a bounded design has no effect on the drawing plane outside that distance.

bounded region
A region that contains at least one point and for which there exists a number,
d
, called the region's diameter, such that if
p1
and
p2
are points in the region, the distance between
p1
and
p2
is always less than or equal to
d
.

bounding rectangle
1. The smallest rectangle that surrounds a bounded region and contains every point in the region, and that may contain additional points as well. The sides of a bounding rectangle are parallel to the coordinate axes.
2. A Lisp object that represents a bounding rectangle.

cache value
A value used during incremental redisplay to determine whether or not a piece of output has changed.

callback
A function that informs an application that one of its gadgets has been used.

children
The direct descendants of a sheet or an output record.

clip, clipping region
A parent window is said to clip its child when only the part of the child window that overlaps the parent is viewable. A clipping region is that part of a window to which the output of a bitmap or a list of rectangles has been restricted.

color
1. An object representing the intuitive definition of a color, such as black or red.
2. A Lisp object that represents a color.

colored design
A design whose points have color.

colorless design
A design whose points have no color. Drawing a colorless design uses the default color specified by the medium's foreground design.

command
1. The way CLIM represents a user interaction.
2. A Lisp object that represents a command.

command name
A symbol that designates a particular command.

command table
1. A way of collecting and organizing a group of related commands and defining the interaction styles that can be used to invoke those commands.
2. A Lisp object that represents a command table.

command table designator
A Lisp object that is either a command table or a symbol that names a command table.

completion
A facility provided by CLIM for completing user input over a set of possibilities.

composite pane
A pane that can have a child pane (cf.
leaf pane
).

compositing
The creation of a design whose appearance at each point is a composite of the appearances of two other designs at that point. There are three varieties of compositing: composing over, composing in, and composing out.

composition
The transformation from one coordinate system to another, then from the second to a third, can be represented by a single transformation that is the composition of the two component transformations. Transformations are closed under composition. Composition is not commutative. Any arbitrary transformation can be built up by composing a number of simpler transformations, but that composition is not unique.

context-dependent input
In the presentation-type system, presentation input is context-dependent because only presentations that match the requirements of the application are accepted as input.

DAG
See
directed acyclic graph
.

degrafted
Not grafted; see
grafted
.

descendants
All of the children of a sheet or an output record, and all of their descendants, recursively.

design
An object that represents a way of arranging colors and opacities in the drawing plane. A mapping from an (
x
,
y
) pair into color and opacity values.

device transformation
The transformation used by the graphics output routines when drawing on the mirror. It is the composition of the sheet's native transformation and the user transformation.

directed acyclic graph
A graph with no closed paths whose arcs have direction.

disowned
Having no parent. An object ceases being the child of another object by being disowned. See also
adopted
.

disabled
Not enabled; See
enabled
.

dispatching
The process of sending an input event to the client to which it is addressed.

display server
A window system; a screen and its input devices, together with the combination of graphics display, hardware, and X server software that drives them.

displayed output record
1. An output record that corresponds to a visible piece of output, such as text or graphics.
2. The leaves of the output record tree.

distributing
The process of determining to which client an input
event
(q.v.) is addressed.

drawing plane
An infinite two-dimensional plane on which graphical output occurs. A drawing plane contains an arrangement of colors and opacities that is modified by each graphical output operation.

enabled
A sheet is said to be enabled when its parent has provided space for it. If a sheet and its ancestors are enabled and
grafted
(q.v.), then the sheet will be visible if it occupies a portion of the graft region that is not
clipped
(q.v.) by its ancestors or their siblings.

event
1. A significant action, such as a user gesture (e.g., moving the pointer, pressing a pointer button, or typing a keystroke) or a window configuration change (e.g., resizing a window).
2. A Lisp object that represents an event.

flipping ink
1. An ink that interchanges occurrences of two designs, such as might be done by
(xor)
on a monochrome display.
2. A Lisp object that represents a flipping ink.

foreground
The design used when drawing with
+foreground-ink+
.

formatted output
1. Output that obeys some high-level constraints on its appearance, such as being arranged in a tabular format or justified within some margins.
2. The CLIM facility that provides a programmer with the tools to produce such output.

frame
See
application frame
.

frame manager
An object that controls the realization of the look and feel of an application frame.

fully specified
A text style is said to be fully specified when none of its components are
nil
and when its size is not relative (that is, neither
:smaller
nor
:larger
).

gesture
Some sort of input action by a user, such as typing a character or clicking a pointer button.

gesture name
A symbol that designates a particular gesture, e.g.,
:select
is commonly used to indicate a left pointer button click.

graft
A kind of mirrored sheet (q.v.) that represents a host window, typically a root window. The graft is where the CLIM window hierarchy is "spliced" onto that of the host system. The graft maintains screen invariants, such as the number of pixels per inch.

grafted
A sheet is said to be grafted when it has an ancestor sheet that is a graft.

highlighting
Making some piece of output stand out, for example by changing its color or drawing a colored line around it. CLIM often highlights the presentation under the pointer to indicate that it is sensitive.

immutable
1. (of an object) Having components that cannot be modified once the object has been created, such as regions, colors and opacities, text styles, and line styles.
2. (of a class) An immutable class is a class all of whose objects are immutable.

implementor
A programmer who implements CLIM.

incremental redisplay
1. Redrawing part of some output (typically the portion that has been changed) while leaving other output as is.
2. The CLIM facility that implements this behavior.

indirect ink
An ink such as
+foreground+
or
+background+
, whose value is some other ink.

ink
Any member of the class
design
supplied as the
:ink
argument to a CLIM drawing function.

input context
The input requirements of a particular application. Also an object used to implement
context-dependent input
(q.v.).

input stream designator
A Lisp object that is either an input stream or the symbol
t
, which is taken to mean
*query-io*
.

interactive stream
A stream that both accepts input from and supports output to the user.

layout
1. The arrangement of panes within an application frame.
2. A kind of pane that is responsible for allocating space to its children, taking their preferred sizes into account.

leaf pane
A pane that cannot have a child pane (cf.
composite pane
).

line style
1. Advice to CLIM's rendering substrate on how to render a path, such as a line or an unfilled ellipse or polygon.
2. A Lisp object that represents a line style.

medium
1. A destination for output, having a drawing plane, two designs called the medium's foreground and background, a transformation, a clipping region, a line style, and a text style.
2. A Lisp object that represents a medium.

mirror
The host window system object associated with a mirrored sheet, such as a window object on an X11 display server.

mirrored sheet
A special class of sheet attached directly to a window on a display server. A
graft
(q.v.) is one kind of a mirrored sheet.

mutable
1. A mutable object has components that can be modified (via
setf
accessors) once the object has been created, such as streams and output records.
2. A mutable class is a class all of whose objects are mutable.

non-uniform design
See
uniform design
.

opacity
1. An object that controls how graphical output appears to cover previous output. Opacity ranges from fully opaque through various levels of translucency to completely transparent.
2. A Lisp object that represents an opacity.

output history
The highest level output record for an output recording stream.

output record
1. An object that remembers the output performed to a stream or medium; the result of an output recording.
2. A Lisp object that represents an output record.

output recording
The process of documenting the output performed to a stream.

output recording stream
A CLIM stream that supports output recording.

output stream designator
A Lisp object that is either an output stream or the symbol
t
, which is taken to mean
*standard-output*
.

pane
A specialized sheet that understands issues pertaining to space requirements. A pane appears as the child of a frame or of another pane. Composite panes can hold other panes; leaf panes cannot.

parent
The direct ancestor of a sheet or an output record.

path
A region that has one dimension, length.

patterning
The process of creating a bounded rectangular arrangement of designs, such as a checkerboard. A pattern is a design created by this process.

pixmap
An "off-screen window," that is, a sheet that can be used for graphical output but that is not visible on any display device.

point
1. A region that has dimensionality 0; i.e., has only a position.
2. A Lisp object that represents a point.

pointer
A physical device used for pointing, such as a mouse, or the cursor that shows the position of the mouse on the screen.

pointer documentation
Text that describes something about what the mouse is over; the mechanism for displaying that text, which appears in a pointer-documentation-pane.

port
An abstract connection to a display server that is responsible for managing host display server resources and for processing input events received from the host display server.

position
1. A location on a plane such as the abstract drawing plane.
2. Two real number values
x
and
y
that represent a location.

presentation
1. An association between an object and a presentation type with some output on a output recording stream.
2. A Lisp object that represents a presentation.

presentation tester
A predicate that restricts the applicability of a presentation translator.

presentation translator
A mapping from an object of one presentation type, input context, and gesture to an object of another presentation type.

presentation type
1. A description of a class of presentations.
2. An extension to CLOS that implements this.

presentation type specifier
A Lisp object used to specify a presentation type.

programmer
A person who writes application programs using CLIM.

protocol class
An "abstract" class having no methods or slots that is used to indicate that a class obeys a certain protocol. For example, all classes that inherit from the
bounding-rectangle
class obey the bounding rectangle protocol.

rectangle
1. A four-sided polygon whose sides are parallel to the coordinate axes.
2. A Lisp object that represents a rectangle.

redisplay
See
incremental redisplay
.

reflection
A transformation in which each point is mapped to a symmetric point with respect to a line; reflections preserve length and magnitude of angles.

region
1. A set of mathematical points in a plane; a mapping from an (
x
,
y
) pair into either
t
or
nil
(meaning member or not a member, respectively, of the region). In CLIM, all regions include their boundaries (i.e., are closed) and have infinite resolution.
2. A Lisp object that represents a region.

region set
1. A "compound" region, that is, a region consisting of several other regions related by one of the operations union, intersection, or difference.
2. A Lisp object that represents a region set.

rendering
The process of drawing a shape (such as a line or a circle) on a display device. Rendering is an approximate process, as abstract shapes exists in a continuous coordinate system having infinite precision, whereas display devices must necessarily draw discrete points having some measurable size.

replaying
The process of redrawing a set of output records.

repainting
Redrawing a window that has been exposed or uncovered.

rotation
A transformation that moves all points around the center of rotation. A rotation maintains each point's distance to the center of rotation and to each other.

sensitive
A presentation is sensitive if some action will take place when the user clicks on it with the pointer. Sensitive presentations are usually highlighted.

server path
A server path is a list used to specify a port. The first element is a keyword that selects the kind of port. The remainder of the server path is a list of alternating keywords and values whose interpretation is port-type-specific.

sheet
1. A visible interface object that specifies the destination for graphical output. A sheet has properties including a coordinate system, a region, an enabled flag, an event handler, an output state, and optionally a parent, a transformation, and children.
2. A Lisp class, a subclass of
bounding-rectangle
, that represents a sheet.

sheet region
The area within a sheet's coordinate system where actions take place, that is, a clipping region for output and input. This typically corresponds to the visible region of the sheet on the display.

sheet transformation
Describes how points in a sheet's coordinate system are mapped onto points in its parents' coordinate system.

solid design
A design comprised of completely opaque and/or completely transparent points. A solid design can be opaque at some points and transparent at others.

spread point argument
Functions that take spread point arguments take a pair of arguments that correspond to the
x
and
y
coordinates of the point. Such functions have an asterisk in their name:
draw-line*
. Cf.
structured point argument
.

stencil
A kind of pattern that contains only opacities.

stencil opacity
The opacity at one point in a design that would result from drawing the design onto a fictitious medium whose drawing plane is initially completely transparent black (opacity and all color components are zero), and whose foreground and background are both opaque black. The stencil opacity of an opacity is simply its value.

stream
A kind of sheet that implements the stream protocol (such as maintaining a text cursor).

structured point argument
Functions that take structured point arguments take the argument as a single point object. Cf.
spread point argument
.

text cursor
The visible underscore or block that shows where user input will appear on the command line or in a text editor. Cf.
pointer
, the cursor that tracks the movement of the mouse.

text style
1. A description of how textual output should appear with respect to its font family, face code, and size.
2. A Lisp object that represents a text style.

tiling
The process of repeating a rectangular portion of a design throughout the drawing plane. A tile is a design so created.

trampoline
A function is said to trampoline when the only thing it does is call the corresponding function in the object's superclass.

transformation
1. A mapping from one coordinate system onto another that preserves straight lines, such as a translation, scaling, rotation, or reflection.
2. A Lisp object that represents a transformation.

translation
A transformation in which the new coordinate axes are parallel to the original ones. A translation preserves length, angle, and orientation of all geometric entities.

translucent design
A design that is not solid, that is, that has at least one point with an opacity somewhere between completely opaque and transparent.

true, t
1. The boolean value true; not false.
2. Any Lisp object that is not
nil
.

unbounded design
A design that has at least one point of non-zero opacity arbitrarily far from the origin. Drawing an unbounded design affects the entire drawing plane.

unbounded region
A region that either contains no points or contains points arbitrarily far apart.

uniform design
A design that has the same color and opacity at every point in the drawing plane. Uniform designs are always unbounded, unless they are completely transparent.

unique id
During incremental redisplay, the unique id is an object used to identify each piece of output. The output named by the unique id will often have a cache value associated with it.

user
A person using an application program written with CLIM.

user transformation
A transformation that is apparent to the user (as opposed to an internal transformation, such as that used to deal with disparate display devices). A user transformation may be set by the user and is associated with a medium.

view
1. A way of displaying data (e.g., as numbers, bars in a bar graph, etc.).
2. A Lisp object that represents a view.

viewport
The portion of the drawing plane of a sheet's medium that is visible on a display device.

volatile
An immutable object is said to be volatile if it has components that cannot be modified by the programmer at the protocol level, but which may be modified internally by CLIM. Volatile objects reflect the internal state of CLIM.

window
A pane that is a subclass of
clim-stream-pane
. A window is another name for a stream pane or other pane that supports the stream protocol.