A panel is a both a container and a containee window. It serves mainly
as a geometry management device, but the
'border creates a
container with a border. Unlike a
pane% object, a
panel%
object can be hidden or disabled.
A panel% object has a degenerate placement strategy for
managing its children: it places each child as if it was the only
child of the panel. The horizontal-panel% and
vertical-panel% classes provide useful geometry management
for multiple children.
Changed in version 1.3 of package gui-lib: Changed the placement strategy to
stretch and align children, instead of
placing all children at the top-left
corner.
If the
'border style is specified, the window is created with
a thin border (in which case the client size of the panel may be
less than its total size). If
style includes
'deleted, then the panel is created as hidden,
and it does not affect its parent’s geometry; the panel can be made active later by calling
parent’s
add-child method.
If the 'hscroll or 'vscroll style is specified, then
the panel includes a scrollbar in the corresponding direction, and
the panel’s own size in the corresponding direction is not
constrained by the size of its children subareas. The 'auto-hscroll
and 'auto-vscroll styles are like 'hscroll or
'vscroll, but they cause the corresponding scrollbar to
disappear when no scrolling is needed in the corresponding direction;
the 'auto-vscroll and 'auto-hscroll modes assume that
children subareas are placed using the default algorithm for a panel%,
vertical-panel%, or horizontal-panel%.
For information about the
enabled argument, see
window<%>. For information about the
horiz-margin and
vert-margin
arguments, see
subarea<%>. For information about the
border,
spacing, and
alignment
arguments, see
area-container<%>. For information about the
min-width,
min-height,
stretchable-width, and
stretchable-height arguments, see
area<%>.