Overview
3
GOOCANVAS Library

# Overview

a quick tour of GooCanvas.

## Features

- Basic items - rect/ellipse/polyline/text/image/grid/group.

- Path item, using SVG path specification strings.

- Table item for layout of other items (similar to the GtkTable widget). (This also supports items whose requested height changes according to their allocated width, such as text items.)

- Embedded GTK+ widgets.

- Layers/stacking order with raise/lower functions.

- Affine transformations for all items - rotations/scales/skews.

- Event handling - button/motion events, "pointer-events" property like SVG.

- Grabs - support for pointer and keyboard grabs.

- Keyboard focus traversal.

- Accessibility (item title and description properties and hierarchy stuff).

- Printing (output to a given cairo_t).

- Scrolling.

- Zooming.

- Static items that don't move as the canvas is scrolled or zoomed.

- Item visibility setting - on/off/above zoom threshold.

- Simple animation.

- Scalable - support for thousands of items over a large canvas area.

- Support for different units - pixels/points/inches/millimeters.

### Features that may be removed in future to simplify the code

- Optional model/view split.

- Uses interfaces for items and views.

- Cascading styles - line width/style/dashes, colors, fill patterns. (The style properties will remain, but will not cascade.)