1.2 Highlights of Tools and Techniques

The facilities provided by CLIM include:

Graphics CLIM offers a rich set of drawing functions, a wide variety of drawing options (such as line thickness), a sophisticated inking model, and color. CLIM provides full affine transformations, so that a drawing may be arbitrarily translated, rotated, and scaled to the extent that the underlying window system is capable of rendering such objects.

Windowing CLIM provides a portable layer for implementing window-like objects known as sheets that are suited to support particular high-level facilities or interfaces. The windowing module of CLIM defines a uniform interface for creating and managing hierarchies of these objects. This layer also provides event management.

Output Recording CLIM offers a facility for capturing all output done to a window. This facility provides the support for automatic window repainting and scrollable windows. In addition, this facility serves as the foundation for a variety of interesting high-level tools, including incremental redisplay.

Formatted Output CLIM provides a set of macros and functions that enable programs to produce neatly formatted tabular and graphical displays with very little effort.

Context Sensitive Input The presentation type facility of CLIM links textual or graphical output on a window with the underlying Lisp object that it represents, so that objects may be retrieved later by selecting their displayed representation with the pointer. This "semantic typing" of output allows the application builder to separate the semantics of the application from the appearance and interaction style.

Application Building CLIM provides an application framework for organizing an application's top-level user interface and command processing loops. This framework provides support for laying out application windows under arbitrary constraints, managing command menus and/or menu bars, and associating user interface gestures with application commands. Using these tools, application writers can easily and quickly construct user interfaces that can grow flexibly from prototype to delivery.

Adaptive Toolkit CLIM provides a uniform interface to the standard compositional toolkits available in many commercial computer environments. CLIM defines abstract classes that are analogous to the gadgets or widgets of toolkits such as Motif or OpenLook. CLIM fosters look-and-feel independence by defining these gadgets in terms of their function, without respect to the details of their appearance or operation. If an application uses these gadgets, its user interface will ultimately draw upon whatever toolkit is available in the host environment. This facility lets programmers easily construct applications that automatically conform to a variety of user interface standards. In addition, a portable CLIM-based implementation of these gadgets is provided.

CommonLisp Interface Manager 2.0 User's Guide - 27 Feb 2006