6.4.2 Width and Height Constraints

In the CAPI, there are three kinds of constraint: external, visible and internal. The following hints are recognized by all layouts:

External constraints control the size that the pane takes up in its parent:

:external-min-width -- the minimum width of the child in its parent

:external-max-width -- the maximum width of the child in its parent

:external-min-height -- the minimum height of the child in its parent

:external-max-height -- the maximum height of the child in its parent

Visible constraints control the size of the part of the pane that you can see:

:visible-min-width -- the minimum visible width of the child.

:visible-max-width -- the maximum visible width of the child.

:visible-min-height -- the minimum visible height of the child.

:visible-max-height -- the maximum visible height of the child.

Internal constraints control the size of region used to display the contents of the pane:

:internal-min-width -- the minimum width of the display region.

:internal-max-width -- the maximum width of the display region.

:internal-min-height -- the minimum height of the display region.

:internal-max-height -- the maximum height of the display region.

Initargs
:min-width,
:max-width,
:min-height and
:max-height are deprecated. They are synonyms for the visible constraints
:visible-min-width
and so on.

Each external size is the same as the visible size plus the borders.

For a non-scrolling pane, the internal constraints are the same as the visible constraints.

For a scrolling pane, the internal constraints control the size of region over which you can scroll and the visible constraints control the size of the viewport. Usually the internal constraints are computed by the widget. Here is an illustration of the external, internal and visible sizes in a scrolling pane.
ABCD
is the external size, abcd is the visible size, and ABCD is the internal size: