home contents changes options help

I need a widget that's like Tk's canvas (and possibly gnome canvas, and possibly diacanvas). I will use my canvas to draw:

o timelines

o roto overlays

o curve/channel editors

The main features my canvas will have over the other canvases:

o my canvas handles putting text annotations onto canvas objects, and it lays out the text in a graceful way about the screen (AnnotationNotes)

o very flexible coordinates and view transformations (TransformationNotes)

o canvas objects that are separate from the canvas, so that one object can be seen on multiple canvases (ObjectSeparationNotes)

o "subcanvas" objects-- groups of normal canvas objects that can be treated as one object within the parent canvas (SubcanvasNotes?)

o multiple output targets-- the canvas can render as Tk, Gtk, OGL, pygame, etc (OutputTargetNotes?)

o transparency and other fancy render effects (EffectsNotes)

Some canvas objects I like: text, polyline (optional fill, arrows), oval, rectangle (optional fill), embedded window, spline, image, (plain) text, subcanvas widget, OpenGL? object (?), subcanvas (see SubcanvasNotes?)

Some objects that Tk has that I don't care about: arc, bitmap (not needed with my fancy images)

Like in Tk, canvas objects can receive various types of events. You can bind a callback function to an event on an object. Or on a canvas or a subcanvas. I might make a subcanvas that looks and acts like a slider widget. I'll subclass a subcanvas and add my behaviors and callbacks to the subclass. Then I can create entire, working, separate sliders on the canvas, and each one will manage itself.

It would be great to have special versions of this canvas that could operate as drop-in replacements of the old canvases. Then you could switch old code to the annotating canvas and gradually start using its new features.

For more information, see: HelpPage, RecentChanges?, ZWiki