The generic function
interface-display
is called by display to display an interface on screen.
The primary method for interface actually does the work. You can add
:before
methods on your own interface classes for code that needs to be executed just before the interface appears, and
:after
methods for code that needs to be executed just after the interface appears.
This example shows how
interface-display
can be used to set the initial selection in a choice whose items are computed at display-time:
(capi:define-interface my-tree ()
((favorite-color :initform :blue))
(:panes
(tree
capi:tree-view
:roots '(:red :blue :green)
:print-function
'string-capitalize))
(:default-initargs
:width 200
:height 200))
(defmethod capi:interface-display :after
((self my-tree))
(with-slots (tree favorite-color) self
(setf (capi:choice-selected-item tree)
favorite-color)))
(capi:display (make-instance 'my-tree))