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 (Windows version) - 01 Dec 2021 19:33:57