Overview

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.)