The size ratios between the layout's children.
The horizontal adjustment for each child.
The gap between each child.
The
column-layout
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 initargs
y-ratios
,
x-adjust
,
y-gap
and
y-uniform-size-p
.
description
may also contain the keywords
:divider
and
:separator
which automatically create a divider or separator as a child of the
column-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, as in the example below.
*layout-divider-default-size*
and
column-layout-divider
are not supported in LispWorks 4.4 and later.
(capi:contain (make-instance
'capi:column-layout
:description
(list
(make-instance 'capi:push-button
:text "Press me")
"Title"
(make-instance 'capi:list-panel
:items '(1 2 3)))))
(setq column (capi:contain
(make-instance
'capi:column-layout
:description
(list
(make-instance 'capi:push-button
:text "Press me")
"Title:"
(make-instance 'capi:list-panel
:items '(1 2 3)))
:adjust :center)))
(capi:apply-in-pane-process
column #'(setf capi:layout-x-adjust) :right column)
(capi:apply-in-pane-process
column #'(setf capi:layout-x-adjust) :left column)
(capi:apply-in-pane-process
column #'(setf capi:layout-x-adjust) :center column)
(flet ((make-list-panel (x y)
(make-instance
'capi:list-panel
:items
(loop for i below x
collect i)
:selection
(loop for i below x by y
collect i)
:interaction
:multiple-selection)))
(capi:contain
(make-instance
'capi:column-layout
:description
(list
(make-list-panel 100 5)
:divider
(make-list-panel 100 10))
:ratios '(1 nil 2))))