Skip to content

anderflash/goocanvas

Repository files navigation


			   Welcome to GooCanvas
                           ====================

	         (a cairo-based canvas widget for GTK+)

         GooCanvas Home Page : http://live.gnome.org/GooCanvas


GooCanvas is similar in many ways to GnomeCanvas and FooCanvas, but it uses
cairo for rendering.

NOTE: I am no longer actively developing GooCanvas, so no major new
features will be added (unless a new maintainer takes over). I'll still
try to fix any bugs that appear though, and may accept minor patches.

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 Basic items - rect/ellipse/polyline/text/image/grid/group.
 o Path item, using SVG path specification strings.
 o 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.)
 o Embedded GTK+ widgets.
 o Layers/stacking order with raise/lower functions.
 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 Static items that don't move as the canvas is scrolled or zoomed.
 o Tooltips.
 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.

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

 o Optional model/view split.
 o Uses interfaces for items & views.
 o Cascading styles - line width/style/dashes, colors, fill patterns.
   (The style properties will remain, but will not cascade.)


Damon Chaplin (damon@gnome.org)

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