
Sodipodi Wishlist
-----------------
This file is for capturing random details about desired development
work, ideas, etc.  The Sodipodi feature request page is probably a
better location for such things, but this can serve as a convenient
scratchpad. 


Rework xml tree
===============
use reprs as lightweight wrappers around gnome-xml,
keeping syntax as close to DOM as possible

-- Lauris

Split SPDesktop object into modular inherited objects
=====================================================
SPDesktop - base, has drawing group, no contexts
SPEDesktop - editable desktop - more full-featured
SPNamedDesktop - Desktop, deriving its layout from NamedView - i.e. guides,
  grid etc. will be saved per-desktop

desktop_show_borders/hide_borders - show/hide rulers & stuff - usable for
  Bonobo component

-- Lauris

Next rewrite of object-tree... Completed
========================================
Ideas:
Basic entity will be SPObject, which can well be non-graphical (undo list)
nontrivial (grid) or conceptually different (namedview) object.
But still they have to maintain object-repr relationships.

object methods:
(destroy, set_arg)

void build (SPObject * object, SPDocument * document, SPRepr * repr)
Reads full tree-definition from repr, building all children, if necessary

-- Lauris

Javascript for Animation support(?)
===================================
> The mozilla javascript engine is under dual MPL/GPL
> (http://lxr.mozilla.org/seamonkey/source/js/src/) and written in C. 
> Hopefully there's some nice way to build off that...

The main reason JavaScript would be tricky is that it would be modifying
the document out from under you via the DOM, so you couldn't have a
"time slider" or something like you could for the SMIL stuff.

That's a real headache, and the only way I can see it working is if the
document is cloned and played back in a separate "audition" window, then
the modified document thrown away at the end.

But then, why implement Javascript in Sodipodi?  An audition feature
that calls out to an external player application would work just as well
(and indeed, that's exactly how applications like Flash cope with
scripting).

[ note that implementing scripting for Sodipodi itself is a separate
issue, and probably warrants a language-agnostic scripting interface
like the GIMP's PDB, only less grotty ]

-- Mental