Calculates the internal constraints of a pane.
capi
calculate-constraints pane
pane⇩ |
A CAPI pane or layout. |
The generic function calculate-constraints
calculates the internal constraints for pane according to the sizes of its children, and sets these values into its geometry cache. It can also store other information about the constraints for later use by calculate-layout.
When the pane does not scroll in the relevant dimension, all the geometry hints (:external-min-width
, :visible-max-height
and so on) override the values that are computed by calculate-constraints
.
When the pane does scroll in the relevant dimension, :internal-min-width
and :internal-min-height
override the values that are computed by calculate-constraints
. (:internal-max-width
and :internal-max-height
are ignored when scrolling.)
See 6.4.1 Width and height hints for a description of internal and external constraints.
The CAPI calls calculate-constraints
for each pane and layout that it displays.
When creating your own layout, you should define a method for calculate-constraints
that sets the values of the following geometry slots based on the constraints of its children.
%min-width% | |
%max-width% | |
%min-height% | |
%max-height% |
See with-geometry for more details of these slots.
The constraints of any CAPI element can be found by calling get-constraints.
Note: Unless your layout is a direct subclass of layout, you must ensure that the calculate-constraints
methods from the superclasses are called. You can do this by calling call-next-method or defining your calculate-constraints
method as an :after
method.
calculate-layout
define-layout
get-constraints
element
layout
with-geometry
7 Programming with CAPI Windows
CAPI User Guide and Reference Manual (Macintosh version) - 01 Dec 2021 19:31:27