The size ratios between the layout's children.
The vertical adjustment for each child.
The gap between each child.
This lays its children out by inheriting 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)))