7.2 Resizing

Programmatic resizing can be done using the function set-top-level-interface-geometry . For example, to double the width of an interface about its center:

(setf interface (contain (make-instance 'interface)))

Use the mouse or window manager-specific gesture to resize the interface, then evaluate:

(multiple-value-bind (x y w h) 
    (top-level-interface-geometry interface)
  (execute-with-interface interface 
                          :x (round (- x (* 0.5 w))) 
                          :y y 
                          :width (* 2 w) 
                          :height h))

All resize operations are subject to the constraints. The constraints can be altered programmatically as described in Changing the constraints.

LispWorks CAPI User Guide (Macintosh version) - 17 Mar 2008