The size ratios between the layout's children.
The vertical adjustment for each child.
The gap between each child.
The class row-layout
lays its children out in a row. It inherits the behavior from grid-layout. The
description
is a list of the layout's children, and the layout also translates the initargs
ratios
,
adjust
,
gap
and
uniform-size-p
into the grid layout's equivalent arguments
x-ratios
,
y-adjust
,
x-gap
and
x-uniform-size-p
.
description
may also contain the keywords :divider
and :separator
which automatically create a divider or separator as a child of the row-layout. The user can move a divider, but cannot move a separator.
When specifying :ratios
in a row with :divider
or :separator
, you should use nil
to specify that the divider or separator is given its minimum size.
*layout-divider-default-size*
and row-layout-divider
are not supported in LispWorks 4.4 and later.
(setq row (capi:contain
(make-instance
'capi:row-layout
:description
(list
(make-instance 'capi:push-button
:text "Press me")
(make-instance 'capi:title-pane
:text "Title")
(make-instance 'capi:list-panel
:items '(1 2 3)))
:adjust :center)))
(capi:apply-in-pane-process
row #'(setf capi:layout-y-adjust) :bottom row)
(capi:apply-in-pane-process
row #'(setf capi:layout-y-adjust) :top row)
This last example shows a row with a stretchable dummy pane between two other elements which are fixed at their minimum size. Try resizing it:
(capi:contain
(make-instance 'capi:row-layout
:description
(list (make-instance 'capi:push-button
:text "foo")
nil
(make-instance 'capi:push-button
:text "bar"))
:ratios '(nil 1 nil)))
column-layout
CAPI elements
Button panel classes
Laying Out CAPI Panes
Programming with CAPI Windows
Defining Interface Classes - top level windows
CAPI User Guide and Reference Manual (Macintosh version) - 3 Aug 2017