If necessary you can run code just before or just after your interface's windows are displayed on screen.
You can do this by defining a :before
or :after
method on the generic function interface-display.
Your method will run just before or just after your interface is displayed on screen. For example:
(defun make-text (self createdp)
(multiple-value-bind (s m h dd mm yy)
(decode-universal-time (get-universal-time))
(format nil "Window ~S ~:[displayed~;created~] at ~2,'0D:~2,'0D:~2,'0D"
self createdp h m s)))
(capi:define-interface dd () () (:panes (dp capi:display-pane)))
(defmethod capi:interface-display :before ((self dd))
(with-slots (dp) self
(setf (capi:display-pane-text dp)
(make-text self t))))
(capi:contain (make-instance 'dd))
Sometimes initialization code can be put in the
create-callback
of your interface, though adding it in suitable methods for initialize-instance
or interface-display is usually better.
CAPI User Guide and Reference Manual (Macintosh version) - 3 Aug 2017