Page 304 Table of Contents Index Page 306
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


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 appli-
cation 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 lay-
out. 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.

29.2 Basic Pane Construction

Applications typically define the hierarchy of panes used in their frames using the :pane or
:panes options of define-application-frame. These options generate the body of methods
on functions that are invoked when the frame is being adopted into a particular frame manager,
so the frame manager can select the specific implementations of the abstract panes.

There are two basic interfaces to constructing a pane: make-pane of an abstract pane class name,
or make-instance of a "concrete" pane class. The former approach is generally preferable,
since it results in more portable code. However, in some cases the programmer may wish to
instantiate panes of a specific class (such as an hbox-pane or a vbox-pane). In this case, using
make-instance directly circumvents the abstract pane selection mechanism. However, the make-
approach requires the application programmer to know the name of the specific pane
implementation class that is desired, and so is inherently less portable. By convention, all of
the concrete pane class names, including those of the implementations of abstract pane protocol
specifications, end in "-pane".

Using make-pane instead of make-instance invokes the "look and feel" realization process to
select and construct a pane. Normally this process is implemented by the frame manager, but it
is possible for other "realizers" to implement this process. make-pane is typically invoked using
an abstract pane class name, which by convention is a symbol in the CLIM package that doesn't
include the "-pane" suffix. (This naming convention distinguishes the names of the abstract pane
protocols from the names of classes that implement them.) Programmers, however, are allowed
to pass any pane class name to make-pane, in which case the frame manager will generally
instantiate that specific class.

=> pane [Protocol Class]
The protocol class that corresponds to a pane, a subclass of sheet. A pane is a special kind of
sheet that implements the pane protocols, including the layout protocols. If you want to create
a new class that behaves like a pane, it should be a subclass of pane. Subclasses of pane must
obey the pane protocol.

All of the subclasses of pane are mutable.

=> panep object [Function]
Returns true if object is a pane, otherwise returns false.

Page 304 Table of Contents Index Page 306
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