29.1 Overview of Panes

CLIM panes are similar to the gadgets or widgets of other toolkits. They can be used by application programmers to compose the top-level user interface of their 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. [annotate]

Note: The comparison to other toolkits isn't very helpful. A high-level description of what a pane is should come here, along with how they differ from their child classes, such as Gadgets, and if Panes extend other interfaces, for instance the Sheet interface. Below the spec says that panes are implemented as special sheet classes. Does this mean that the Pane interface is a subinterface of Sheet? [edit]-- Cyrus Harmon 2018-08-25 18:09Z

[adaptive panes, Concept← 29.1 Overview of Panes]

Panes are rectangular objects that are implemented as special sheet classes. An application will typically construct a tree of panes that divide up the screen space allocated to the application frame. The various CLIM pane types can be characterized by whether they have children panes or not: panes that can have other panes as children are called composite panes, and those that don't are called leaf panes. Composite panes are used to provide a mechanism for spatially organizing ("laying out") other panes. Leaf panes implement gadgets that have some appearance and react to user input by invoking application code. Another kind of leaf pane provides an area of the application's screen real estate that can be used by the application to present application specific information. CLIM provides a number of these application pane types that allow the application to use CLIM's graphics and extended stream facilities. [annotate]

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 initargs, 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. The purpose of this abstract definition is to allow multiple implementations of the abstract pane, each defining its own specific look and feel. CLIM can then select the appropriate pane implementation based on factors outside the control of the application, 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. [annotate]

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 pane class. [annotate]