Page 1 Table of Contents Index Page 3
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E





Chapter 1

Overview of CLIM

The Common Lisp Interface Manager (CLIM) is a powerful Lisp-based programming interface
that provides a layered set of portable facilities for constructing user interfaces. These include
basic windowing, input, output, and graphics services; stream-oriented input and output ex-
tended with facilities such as output recording, presentations, and context sensitive input; high
level "formatted output" facilities; application building facilities; command processing; and a
compositional toolkit similar to those found in the X world that supports look and feel indepen-
dence.

CLIM provides an API (applications programmer interface) to user interface facilities for the
Lisp application programmer. CLIM does not compete with the window system or toolkits of
the host machine (such as Motif or OpenLook), but rather uses their services (to the extent
that it makes sense) to integrate Lisp applications into the host's window environment. For
example, CLIM "windows" are mapped onto one or more host windows, and input and output
operations performed on the CLIM window are ultimately carried out by the host window system.
CLIM will support a large number of host environments including Genera, Motif, OpenLook,
the Macintosh, CLOE-386/486, and the Next machine.

The programmer using CLIM is insulated from most of the complexities of portability, since
the Lisp-based application need only deal with CLIM objects and functions regardless of their
operating platform (that is, the combination of Lisp system, host computer, and host window
environment). CLIM abstracts out many of the concepts common to all window environments.
The programmer is encouraged to think in terms of these abstractions, rather than in the specific
capabilities of a particular host system. For example, using CLIM, the programmer can specify
the appearance of output in high-level terms and those high-level descriptions are turned into
the appropriate appearance for the given host. Thus, the application has the same fundamental
interface across multiple environments, although the details will differ from system to system.

Another important goal in the design and organization of CLIM is to provide a spectrum of
user interface building options, all the way from detailed, low-level specification of "what goes
where", to high-level user interface specification where the programmer leaves all of the details up
to CLIM. This allows CLIM to balance the ease of use on one hand, and versatility on the other.
By using high level facilities, a programmer can build portable user interfaces quickly, whereas


Page 1 Table of Contents Index Page 3
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E