Provides a rectangular area in a pinboard-layout with drawing capabilities.
The output pane on which the pinboard object is drawn.
t, the pinboard object is made active.
The x position of the pinboard object in the pinboard.
The y position of the pinboard object in the pinboard.
pinboard-object provides a rectangular area in a pinboard-layout with drawing and highlighting capabilities. A pinboard object behaves just like a simple pane within layouts, meaning that they can be placed into rows, columns and other layouts, and that they size themselves in the same way. The main distinction is that a pinboard object is a much smaller object than a simple pane as it does not need to create a native window for itself.
Each pinboard object is placed into a pinboard layout (or into a layout itself inside a pinboard layout), and then when the pinboard layout wishes to redisplay a region of itself, it calls the function draw-pinboard-object on each of the pinboard objects that are contained in that region (in the order that they are specified as children to the layout).
The graphics-args slot allows drawing options to be set. These include the font , the background and foreground colors, and others (see graphics-state). The graphics-args are used by the built-in pinboard-object (all subclasses of pinboard-object except drawn-pinboard-object) as extra arguments in calls to drawing functions. For example, to create a filled red rectangle object, you can use:
The graphics args can be accessed after creation using
pinboard-object-graphics-args, and it is also possible to modify a single value using pinboard-object-graphics-arg.
t, CAPI does not call draw-pinboard-object-highlighted even when the object is highlighted. Typically, the drawing function you supply (either the method draw-pinboard-object or the
for drawn-pinboard-object) will do the highlight in this case, using pinboard-object-highlighted-p to check if they need to.
The geometry hints are interpreted as described for element. After creation, you can query the geometry of a pinboard-object using the functions static-layout-child-position and static-layout-child-size and static-layout-child-geometry. You can also set the geometry using
cl:setf with these functions.
Draws an ellipse.
Draws a rectangle.
To force a pinboard object to redraw itself call redraw-pinboard-object. The redrawing may be cached and displayed at a later date.
Call the generic functions highlight-pinboard-object and unhighlight-pinboard-object to highlight a pinboard and remove its highlighting. If you want non-standard highlighting, you can implement methods for your subclass of
You can test whether a whether a point or region coincides with a pinboard object by the generic functions over-pinboard-object-p and pinboard-object-overlap-p. The default methods assume a rectangle based on the geometry, which must always be the enclosing rectangle of the whole pinboard object. Therefore you only need to implement methods if your subclass of
pinboard-object has a non-rectangular shape.
automatic-resize makes the pinboard object resize automatically. This has an effect only if it is placed inside a static-layout (including subclasses like pinboard-layout). The effect is that when the static-layout is resized then the pinboard object also changes its geometry.
The value of automatic-resize defines how the pinboard object's geometry changes. It must be a plist of keywords and values which match the keywords of the function set-object-automatic-resize and are interpreted in the same way.
You can also control automatic resizing of a pinboard object using set-object-automatic-resize.
There are further examples in Self-contained examples.
Laying Out CAPI Panes
Creating graphical objects
CAPI User Guide and Reference Manual (Windows version) - 3 Aug 2017