All Manuals > CAPI User Guide and Reference Manual > 21 CAPI Reference Entries

column-layout Class

Summary

A layout which arranges its children in a column.

Package

capi

Superclasses

grid-layout

Initargs
: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.
Accessors

layout-ratios

Description

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.

Examples
(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))))
See also

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