A layout which arranges its children in a column.
capi
:ratios |
The size ratios between the layout's children. |
:adjust |
The horizontal adjustment for each child. |
:gap |
The gap between each child. |
:uniform-size-p |
If t , each child in the column has the same height. |
layout-ratios
The class column-layout
lays its children out in a column. 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 equivalent grid-layout initargs y-ratios, x-adjust, y-gap and y-uniform-size-p.
description may also contain the keywords :divider
and :separator
which 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.
If you need to change both the description and ratios of a column-layout
while it is on the screen, then consider using set-layout-description-and-ratios.
(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))))
row-layout
1.2.1 CAPI elements
5.2 Button panel classes
6 Laying Out CAPI Panes
7 Programming with CAPI Windows
11 Defining Interface Classes - top level windows
CAPI User Guide and Reference Manual (Unix version) - 18 Feb 2025 15:34:22