10.2.2 Layout Pane Classes

Summary: The
hbox-pane
class lays out all its child panes horizontally from left to right. The
horizontally
macro is a convenient interface for creating an
hbox-pane
.

contents
is one or more forms that are the child panes. Each form in
contents
is of the form:

A pane--the pane is inserted at this point and its space requirements are used to compute the size.

A number--the specified number of device units should be allocated at this point.

The symbol
+fill+
--an arbitrary amount of space can be absorbed at this point in the layout.

A list whose first element is a number and whose second element evaluates to a pane--if the number is less than 1, then it means that percentage of excess space or deficit should be allocated to the pane. If the number is greater than or equal to 1, then that many device units are allocated to the pane. For example:

(horizontally ()

(1/3 (make-pane 'label-button-pane))

(2/3 (make-pane 'label-button-pane)))

would create a horizontal stack of two button panes. The first button takes one-third of the space, and the second takes two-thirds of the space.

Summary: This pane reserves some margin space around a single child pane. The space requirement keys that are passed in indicate the requirements for the surrounding space, not including the requirements of the child.

Summary: This layout pane puts an outline of thickness
thickness
around its contents.

Use the
:background
option to control the ink used to draw the background.

bboard-pane

Summary: A pane that allows its children to be any size and lays them out wherever they want to be (for example, a desktop manager).

scroller-pane

scrolling [Macro]

Arguments: (
&rest
options)
&body
contents

Summary: Creates a composite pane that allows the single child specified by
contents
to be scrolled.
options
may include a
:scroll-bar
option. The value of this option may be
t
(the default), which indicates that both horizontal and vertical scroll bars should be created;
:vertical
, which indicates that only a vertical scroll bar should be created; or
:horizontal
, which indicates that only a horizontal scroll bar should be created.

The pane created by the
scrolling
includes a
scroller-pane
that has as children the scroll bars and a
viewport
. The viewport of a pane is the area of the window's drawing plane that is currently visible to the user. The viewport has as its child the specified contents.

hrack-pane

vrack-pane

Summary: Similar to the
hbox-pane
and
vbox-pane
classes, except that these ensure that all children are the same size in the minor dimension. In other words, these panes are used to create stacks of same-sized items, such as menu items.

An
hrack-pane
is created when the
:equalize-height
option to
horizontally
is
t
. A
vrack-pane
is created when the
:equalize-width
option to
vertically
is
t
.

hrack-pane
and
vrack-pane
are available only in Liquid CLIM.

restraining-pane

restraining [Macro]

Arguments: (
&rest
options)
&body
contents

Summary: Wraps the contents with a pane that prevents changes to the space requirements for
contents
from causing re-layout of panes outside the restraining context. This prevents the size constraints of the child from propagating up beyond this point.