The class drawn-pinboard-object
is a subclass of pinboard-object which is drawn by a supplied function, and is provided as a means of the user creating their own pinboard objects.
capi
:display-callback |
Called to display the object. |
drawn-pinboard-object-display-callback
The display-callback is called with the output pane to draw on, the drawn-pinboard-object
itself, and the x, y, width and height of the object, and it is expected to redraw that section. The display-callback should not draw outside the object's bounds.
An alternative way of doing this is to create a subclass of pinboard-object and to provide a method for draw-pinboard-object.
(defun draw-an-ellipse (output-pane self x y width height) (let ((x-radius (floor width 2)) (y-radius (floor height 2))) (gp:draw-ellipse output-pane (+ x x-radius) (+ y y-radius) x-radius y-radius :foreground :red :filled t)))
(capi:contain (make-instance 'capi:drawn-pinboard-object :visible-min-width 200 :visible-min-height 100 :display-callback 'draw-an-ellipse))
There are further examples in 20 Self-contained examples.
pinboard-layout
12 Creating Panes with Your Own Drawing and Input
CAPI User Guide and Reference Manual (Macintosh version) - 01 Dec 2021 19:31:27