
Here's my new canvas widget for GTK+. You'll need GTK+ 2.8 to try it.

It is similar in many ways to FooCanvas, hence the name. But it uses cairo
for rendering, has an optional model/view split, and uses interfaces for items
& models (so you can easily turn any application object into a canvas item or
model).

It is usable now, though the API may change slightly before 1.0.

To build it run './configure' and 'make'. To run the demo cd into 'demo' and
run './demo'. (Or run ./simple-demo for the very simple demo, or ./mv-demo
for the model-view demo.)


Features:

 o Optional model/view split.
 o Uses interfaces for items & views.
 o Basic items - rect/ellipse/polyline/text/image/group.
 o Path item, using SVG path specification strings.
 o Table item for layout of other items (similar to the GtkTable widget).
 o Embedded GTK+ widgets.
 o Layers/stacking order with raise/lower functions.
 o Cascading styles - line width/style/dashes, colors, fill patterns.
 o Affine transformations for all items - rotations/scales/skews.
 o Clip paths to support clipping items.
 o Event handling - button/motion events, "pointer-events" property like SVG.
 o Grabs - support for pointer & keyboard grabs.
 o Keyboard focus traversal.
 o Accessibility (item title & description properties and hierarchy stuff).
 o Printing (output to a given cairo_t).
 o Scrolling.
 o Zooming.
 o Item visibility setting - on/off/above zoom threshold.
 o Simple animation.
 o Scalable - support for thousands of items over a large canvas area.
 o Support for different units - pixels/points/inches/millimeters.
 o API docs.


Damon Chaplin (damon@gnome.org)

(FooCanvas can be found in GNOME cvs in the 'foocanvas' module.
FooCanvas was based on GnomeCanvas, which is in the 'libgnomecanvas' module.)
