Common Lisp Interface Manager 2.0 User's Guide > Chapter 10 Panes and Gadgets


10.1 Panes

CLIM panes are similar to the gadgets or widgets of other toolkits. They can be used to compose the top-level user interface of applications as well as auxiliary components such as menus and dialogs. The application programmer provides an abstract specification of the pane hierarchy, which CLIM uses in conjunction with user preferences and other factors to select a specific "look and feel" for the application. In many environments, a CLIM application can use the facilities of the host window system toolkit via a set of adaptive panes , allowing a portable CLIM application to take on the look and feel of a native application user interface.

Panes are rectangular objects that are implemented as special sheet classes. An application will typically create a tree of panes that divide up the application frame's screen space. Panes can be structurally classified according to their location in pane hierarchies. Panes that can have child panes are called composite panes ; those that cannot are called leaf panes . Composite panes are used to provide a mechanism for spatially organizing ("laying out") other panes. Some leaf panes implement gadgets that have some appearance and react to user input by invoking application code. Another kind of leaf pane, known as an extended stream pane , provides an area of the application's screen real estate for the presentation of text and graphics.

Abstract panes are panes that are defined only in terms of their programmer interface, or behavior. The protocol for an abstract pane (that is, the specified set of initialization options, accessors, and callbacks) is designed to specify the pane in terms of its overall purpose, rather then in terms of its specific appearance or particular interactive details. This abstract definition allows multiple implementations of the abstract pane to define their own specific look and feel individually. CLIM can then select the appropriate pane implementation based on factors outside of the application domain, such as user preferences or the look and feel of the host operating environment. A subset of the abstract panes, the adaptive panes, have been defined to integrate well across all CLIM operating platforms.

CLIM provides a general mechanism for automatically selecting the particular implementation of an abstract pane selected by an application based on the current frame manager. The application programmer can override the selection mechanism by using the name of a specific pane implementation in place of the abstract pane name when specifying the application frame's layout. By convention, the name of the basic, portable implementation of an abstract pane class can be determined by adding the suffix -pane to the name of the abstract class.

10.1.1 Basic Pane Construction

10.1.2 Pane Initialization Options

10.1.3 Pane Properties

Common Lisp Interface Manager 2.0 User's Guide - 22 Dec 2009