All Manuals > CAPI Reference Manual > 1 CAPI Reference Entries

NextPrevUpTopContentsIndex

pinboard-object

Class
Summary

Provides a rectangular area in a pinboard-layout with drawing capabilities.

Package

capi

Superclasses

capi-object

Subclasses

ellipse
item-pinboard-object
image-pinboard-object
line-pinboard-object
drawn-pinboard-object
rectangle

Initargs

:pinboard

The output pane on which the pinboard object is drawn.

:activep

If t , the pinboard object is made active.

:graphics-args

A plist of Graphics Ports drawing options.

:automatic-resize

A plist.

The following initargs are geometry hints, influencing the initial size and position of a pinboard-object :

:x

The x position of the pinboard object in the pinboard.

:y

The y position of the pinboard object in the pinboard.

:external-min-width

The minimum width of the pinboard object in the pinboard.

:external-min-height

The minimum height of the pinboard object in the pinboard.

:external-max-width

The maximum width of the pinboard object in the pinboard.

:external-max-height

The maximum height of the pinboard object in the pinboard.

:visible-min-width

The minimum visible width of the pinboard object.

:visible-min-height

The minimum visible height of the pinboard object.

:visible-max-width

The maximum visible width of the pinboard object.

:visible-max-height

The maximum height of the pinboard object.

:internal-min-width

The minimum width of the display region.

:internal-min-height

The minimum height of the display region.

:internal-max-width

The maximum width of the display region.

:internal-max-height

The maximum height of the display region.

Accessors

pinboard-object-pinboard
pinboard-object-activep
pinboard-object-graphics-args

Description

The class 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 geometry hints are interpreted as described for element.

By default a pinboard-object does not accept the input focus.

There are a number of predefined pinboard objects provided by the CAPI. They are as follows:

ellipse

Draws an ellipse.

rectangle

Draws a rectangle.

item-pinboard-object

Draws a title.

line-pinboard-object

Draws a line.

right-angle-line-pinboard-object

Draws a right-angled line.

image-pinboard-object

Draws an image.

drawn-pinboard-object

Uses a user-defined display function.

The main user of pinboard objects in the CAPI is the graph pane, which uses item-pinboard-object and line-pinboard-object to display its nodes and edges respectively.

To force a pinboard object to redraw itself, either call the function invalidate-rectangle on it (in which case the redrawing is done immediately), or call redraw-pinboard-object in which case 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 pinboard-object .

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.

Notes

You can also control automatic resizing of a pinboard object using set-object-automatic-resize.

Example

See the file examples/capi/graphics/pinboard-test.lisp .

See also

pinboard-layout
draw-pinboard-object
graph-pane
highlight-pinboard-object
over-pinboard-object-p
redraw-pinboard-object
redraw-pinboard-layout
pinboard-object-overlap-p
set-object-automatic-resize
unhighlight-pinboard-object


CAPI Reference Manual - 15 Dec 2011

NextPrevUpTopContentsIndex