A
layout
is a simple pane that positions one or more child panes within itself according to a layout policy.
A flag to mark the default layout for an interface.
The list of the layout's children.
A child of the layout, or its
name
, specifying where the input focus should be, or
nil
.
The layout's description is an abstract description of the children of the layout, and each layout defines its format. Generally, description is a list, each element of which is one of:
For grid-layout and its subclasses, elements of
description
can also be
nil
. See grid-layout for the interpretation of this value.
Setting the layout description causes the layout to translate it, and then to layout the new children, adjusting the size of its parent if necessary.
A number of default layouts are provided which provide the majority of layout functionality that is needed. They are as follows:
A layout for one child.
Lays its children out in a row.
Lays its children out in a column.
Lays its children out in an n by m grid.
Places its children where the user specifies.
Keeps only one of its children visible.
initial-focus
specifies which child of the layout has the input focus when the layout is first displayed. Panes are compared by
eq
or
capi-object-name
.
Note: for a pinboard-layout, the order of the objects in description defines the Z-order, with the first object in the list being at the bottom.That is,
(setf (capi:layout-description pinboard-layout)
(cons object
(capi:layout-description pinboard-layout)))
(capi:manipulate-pinboard pinboard-layout object
:add-bottom)