Common Lisp Interface Manager 2.0 User's Guide > Chapter 10 Panes and Gadgets > 10.2 Layout Panes


10.2.2 Layout Pane Classes


horizontally [Macro]	

Arguments: ( &rest options &key spacing &allow-other-keys ) &body contents

Summary: The hbox-pane class lays out all its child panes horizontally from left to right. The horizontally macro is a convenient interface for creating an hbox-pane .

contents is one or more forms that are the child panes. Each form in contents is of the form:

A pane--the pane is inserted at this point and its space requirements are used to compute the size.

A number--the specified number of device units should be allocated at this point.

The symbol +fill+ --an arbitrary amount of space can be absorbed at this point in the layout.

A list whose first element is a number and whose second element evaluates to a pane--if the number is less than 1, then it means that percentage of excess space or deficit should be allocated to the pane. If the number is greater than or equal to 1, then that many device units are allocated to the pane. For example:

           (horizontally ()
                         (1/3 (make-pane 'label-button-pane)) 
                         (2/3 (make-pane 'label-button-pane))) 

would create a horizontal stack of two button panes. The first button takes one-third of the space, and the second takes two-thirds of the space.


vertically [Macro]	

Arguments: ( &rest options &key spacing &allow-other-keys ) &body contents

Summary: The vbox-pane class lays out all of its child panes vertically, from top to bottom. The vertically macro serves as a convenient interface for creating an vbox-pane .

contents is as for horizontally .


tabling [Macro]	

Arguments: ( &rest options) &body contents

Summary: This pane lays out its child panes in a two-dimensional table arrangement. Each column of the table is specified by an extra level of list in contents . For example:

(tabling ()
((make-pane 'label :text "Red")
(make-pane 'label :text "Green")
(make-pane 'label :text "Blue"))
((make-pane 'label :text "Intensity")
(make-pane 'label :text "Hue")
(make-pane 'label :text "Saturation")))


spacing [Macro]	

Arguments: ( &rest options &key thickness &allow-other-keys ) &body contents

Summary: This pane reserves some margin space around a single child pane. The space requirement keys that are passed in indicate the requirements for the surrounding space, not including the requirements of the child.


outlining [Macro]	

Arguments: ( &rest options &key thickness &allow-other-keys ) &body contents

Summary: This layout pane puts an outline of thickness thickness around its contents.

Use the :background option to control the ink used to draw the background.


Summary: A pane that allows its children to be any size and lays them out wherever they want to be (for example, a desktop manager).


scrolling [Macro]	

Arguments: ( &rest options) &body contents

Summary: Creates a composite pane that allows the single child specified by contents to be scrolled. options may include a :scroll-bar option. The value of this option may be t (the default), which indicates that both horizontal and vertical scroll bars should be created; :vertical , which indicates that only a vertical scroll bar should be created; or :horizontal , which indicates that only a horizontal scroll bar should be created.

The pane created by the scrolling includes a scroller-pane that has as children the scroll bars and a viewport . The viewport of a pane is the area of the window's drawing plane that is currently visible to the user. The viewport has as its child the specified contents.



Summary: Similar to the hbox-pane and vbox-pane classes, except that these ensure that all children are the same size in the minor dimension. In other words, these panes are used to create stacks of same-sized items, such as menu items.

An hrack-pane is created when the :equalize-height option to horizontally is t . A vrack-pane is created when the :equalize-width option to vertically is t .

hrack-pane and vrack-pane are available only in Liquid CLIM.


restraining [Macro]	

Arguments: ( &rest options) &body contents

Summary: Wraps the contents with a pane that prevents changes to the space requirements for contents from causing re-layout of panes outside the restraining context. This prevents the size constraints of the child from propagating up beyond this point.

restraining-pane and restraining are available only in Liquid CLIM.

Common Lisp Interface Manager 2.0 User's Guide - 22 Dec 2009