The class
simple-pane
is the superclass for any elements that actually appear as a native window, and is itself an empty window.
display-pane
interface
title-pane
button-panel
list-panel
option-pane
output-pane
progress-bar
slider
text-input-pane
tree-view
toolbar
layout
button
A boolean controlling whether the pane is enabled.
The background color of the pane.
The foreground color of the pane.
The default font for the pane.
t
,
:without-bar
, or
nil
. If true the pane can scroll horizontally.
t
,
:without-bar
, or
nil
. If true the pane can scroll vertically.
A boolean or a keyword controlling whether the pane has a border, for some pane classes.
A non-negative integer, or
nil
. Controls the width of the internal border.
A keyword naming a built-in cursor, or a cursor object, or
nil
.
simple-pane-enabled
simple-pane-background
simple-pane-foreground
simple-pane-font
simple-pane-cursor
simple-pane-scroll-callback
enabled
determines whether the pane is enabled. The default value is
t
. Note that changing the enabled state of a visible pane changes its appearance.
background
and
foreground
are colors specified using the Graphics Ports color system. Additionally on Cocoa, the special value
:transparent
is supported, which makes the pane's background match that of its parent.
font
should be font, a font description, or
nil
.
The value for visible-border can be any of the following, with the stated meanings where applicable:
Has no border.
Has a border.
Use the default for the window type.
Add an outline border.
There are various platform/pane class combinations which do not respond to all values of
visible-border
. For instance, on Windows XP with the default theme,
text-input-choice
and
option-pane
always have a visible border regardless of the value of
visible-border
, while other classes including
display-pane
,
text-input-pane
,
list-panel
,
editor-pane
and
graph-pane
have three distinct border styles, with
visible-border
:default
meaning the same as
visible-border
t
.
If
internal-border
is non-
nil
, it should be a non-negative integer specifying the width of an empty region around the edge of the pane.
Any simple pane can be made scrollable by specifying
t
to
:horizontal-scroll
or
:vertical-scroll
. By default these values are
nil
, but some subclasses of
simple-pane
default them to
t
where appropriate (for instance
editor-pane
s always default to having a vertical scroll-bar).
For a pane which is scrollable but does not display a scroll bar, pass the value
:without-bar
for
:horizontal-scroll
or
:vertical-scroll
. See the example in
output-panes/scrolling-without-bar.lisp
.
The height and width of a scrollable simple pane can be specified by the initargs
:scroll-height
and
:scroll-width
, which have the same meaning as
:internal-min-height
and
:internal-min-width
. See the
LispWorks CAPI User Guide
for more information about height and width initargs.
cursor
specifies a cursor for the pane.
nil
means use the default cursor, and this is the default value.
cursor
can also be a cursor object as returned by load-cursor. The other allowed values are keywords naming built-in cursors which are supported on each platform as shown in the table below.
Note: On Cocoa in Mac OS X 10.2, only
:i-beam
is supported.
pane-menu
can be used to specify or create a menu to be displayed when the
:post-menu
gesture is received by the pane. It has the default value
:default
which means that make-pane-popup-menu is called to create the menu. For a full description of
pane-menu
, see the section "Popup menus for panes" in the
LispWorks CAPI User Guide
.
In order to display a simple pane, it needs to be contained within an interface. The two convenience functions make-container and contain are provided to create an interface with enough support for that pane. The function make-container just returns a container for an element, and the function contain displays an interface created for the pane using make-container.
(capi:contain (make-instance 'capi:output-pane
:background :red
:scroll-width 300
:horizontal-scroll t))
(setf ep
(capi:contain
(make-instance 'capi:editor-pane
:visible-border t)))
(setf (capi:simple-pane-cursor ep) :crosshair)