TODO list
=========
('-' means open issue; "#" partly completed; '*' means completed)


* i18n
  Every sensor must be able to bring its own locale files.

* layout anchors
  The hotspot for placing widgets has to be changable (N, W, S, E, NW, NE,
  SW, SE). This might require hacking TargetGroup and TargetArray only,
  if we're lucky.

* fix memory leaks (seems OK; nothing to fix)
  How good is the garbage collection of Python really? We have lots of cyclic
  references.

* implement Bonobo target
  A Bonobo target can embed Bonobo components such as panel applets. That would
  be great. (most useful things are already implemented)

* better interaction with window manager
  Obey the standards of freedesktop.org.

* make the installer work
  The installer should handle system-wide and user-only installations.

* gnome-session integration

* use GNOME-VFS for accessing displays
  This would make it possible to have remote displays or displays in archives.

* Improve performance/reduce memory consumption by caching values and using
  Singleton patterns.

* use C code for retrieving system information in libdesklets
  Maybe use libgtop.

* window shapes
  Window shapes provide a simple way for simple transparency by cutting holes
  into a window.

* scripting in .display files
  Allow scripts in .display files. (needs testing)

* make 'watch' property more flexible
  E.g. allow things like watch="'Temp:'sys:temp' C'".
  DONE using inline scripting.

* finish the TargetExpander class and use the new property system
  (doc/Properties.txt).

* additionally use FAM for the FileWatcher.
  The FileWatcher should use the File Alteration Monitor where available.
  Use http://python-fam.sf.net. (v0.30 or v0.31) or gnome-vfs.

* make TargetCanvas a SVG based canvas (using librsvg)

* TargetPlotter uses SVG

* remove vfs/ and tools/ because they are no longer useful (and never really
  worked)

* deprecate Sensors ĭn the current way (we'll have inline scripting with
  restricted access to the system). Sensors will be data sources and nothing
  else (check out PSI, LTV and RDG Sensors). v.0.30 will deprecate Sensors and
  v0.31 will remove support for it.


High priority:
--------------

# user frontend for most administration tasks of gDesklets (has to be completed
  for v0.30)

- save prefs (<prefs> tag)

- themes support
  Make themes possible by using Cascading Stylesheets maybe. (v0.31 or v0.32)


Normal priority:
----------------

# reference for desklet authors
  The reference (docbook format for yelp) should be created from the source
  code of gDesklets automatically.

- implement grouping of displays
  This would allow to move a cluster of displays when the user moves one
  display in the cluster.

- Font/gauge/plotter color should watch background color (v0.30 or v0.31)


Low priority:
-------------

# get rid of FutureWarnings
  Python 2.3 raises some FutureWarnings.

- migration of gDeskCal to gDesklets
  Ideally, we can reuse the iCalendar stuff and only replace the calendar
  display itself with gDesklets. A standalone version of gDeskCal could use a
  slick runtime version of gDesklets. Not every gDeskCal user needs the power
  of gDesklets.
