The whiteboard in Coccinella has now come one step further to use SVG graphics. Well, it's not there, yet, but an important step has been taken.
The canvas widget in Tcl/Tk is way too limited to use as a basis to implement SVG support on the scripting level. For some time I have therefore developed the tkpath package which adds all needed drawing elements from SVG, see some shots, using the C plug in structure. However, this is too limited for SVG and its underlying XML tree structure. I have therefore made a new canvas widget, based on code from the existing Tk canvas, but instead of having a flat display structure, I have now implemented a complete tree structure, including a permanent root group item, which mirrors the XML structure. Some code come from the existing ttk::treeview and TreeCtrl widgets which have a similar tree layout.
Added to this widget is then all the items, styles, gradients etc. from my tkpath package. My aim is to keep 100% compatibility with the old canvas, which is needed to get acceptance from the Tcl community. All items from tkpath, which have SVG counterparts, also have a -parent option which can be reconfigured to be any group item. Such an option hasn't been added to the standard canvas items which instead, by default, always will be child of the root item.
Not all things have been implemented. One major part is the inheritance mechanism where elements get there style and display options from its parent group items. In principle, each item, or element, must keep track of its own options as well as its inherited display options. These are kept in a Tk_PathStyle struct but having two of these would become much to heavy. On the other hand, recomputing the inheritance chain each time an item is displayed, or hit tested etc., is too cpu intensive.
So while most things are in place, other need some more thoughts. Nothing released yet, and nothing in cvs, yet.