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

NextPrevUpTopContentsIndex

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 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.

Compatibility note

*layout-divider-default-size* and column-layout-divider are not supported in LispWorks 4.4 and later.

Example
(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
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 (Windows version) - 3 Aug 2017

NextPrevUpTopContentsIndex