--------------------------------------------------------------------------------
  Screenlets - TODO LIST
--------------------------------------------------------------------------------

+ TODO: core
------------
- move some screenlets-related functions from utils module to __init__.py
- move ShapedWidget and Tooltip classes out of __init__.py
- review Screenlet.register_service, looks a bit messy
- add __api_version__ attribute to Screenlet for performing version checks
- check if switching themes still slowly increases the memory usage
- check if scaling still slowly increases the memory usage 
- check if fileoption and directoryoption still need to be fixed
- create some better looking buttons toolbar with some more appealing effects
  (maybe as different window that also uses sprite.py and fades in/out slowly
  once a screenlet gets hovered; should solve several issues with current way
  of drawing buttons into the screenlet itself)
- merge Martin Owen's rework of the screenlets option system into trunk
- add/use new sprite-based drawing API in sprite.py (once finished)
- improve config files: use XML files for new theme API (and use HTMLParser 
  class for reading those files)
- use python-webkitgtk bindings for all HTML-based widget rendering and remove
  gtkmozembed
- add/finish missing handlers (if they are still missing):
  on_key_up, on_minimize, on_maxmize, ...
- some useful logging system for a more unified (and optional) logging (or use 
  Python's Logging Module, seehttps://bugs.launchpad.net/screenlets/+bug/232541)
- Implement gconf-backend
- switching themes slowly increases the memory usage (maybe rsvg leak?)
- Scaling  slowly increases the memory usage 
- some useful logging system for a more unified (and optional) logging
- more "crazy connectivity", e.g. make the PlantScreenlet depend on the 
  WeatherScreenlet's data ... when it rains, the plant is growing and gets a
  blossom and when it is too hot the plant drys out
- allow using additional rendering backends like libclutter or even OpenGL to
  fully take advantage of the accelerated desktop (maybe even make the 
  screenlets completely 3d and embed them into one C-host?)
- physics (maybe better through a WM-plugin which allows setting gravitation
  and mass for certain window-types?) to be able to stack screenlets on top of
  another and put them on top of other windows and have them stay there and
  move when the other windows are moved, akamaru lib? aantn seems to be working on it
- Fix fileoption and directoryoption
- find a way to get notified about end of a begin_move_drag-operation?
- implement gconf-backend (possibly)
- add/finish missing handlers:
  on_key_up, on_minimize, on_maxmize, ...
- [PermanentItem] code cleanup and bug-hunt
- Take advantage of webkit when the python bindings become available
- screenlets-interoperability-with other apps - aantn seems to be working on it 
  in universal applets branch
- Notification area - needs C module...
- Have a way to show the current scale of a screenlet 
  https://bugs.launchpad.net/screenlets/+bug/205711
- Drag drop launch of screenlets in the manager
  https://bugs.launchpad.net/screenlets/+bug/208757
- Use Python's Logging Module
  https://bugs.launchpad.net/screenlets/+bug/232541
  aantn seems to be working on it


+ TODO: screenlets-manager
--------------------------
- completely separate manager into own project 
- create separated tray-icon applicaton 
- heavily cleanup, organize (and likely partially rewrite) code
- reorganize the UI (beautify left "menu" area, add Tabs for different views,
  add better info area, maybe add screenshots or directly embed wiki page if
  existing ...  much much more room for improvement)
- Drag drop launch of screenlets in the manager (hm, seems not useful to me)
  https://bugs.launchpad.net/screenlets/+bug/208757
- Use python-apt (apt_pkg) instead of command line dpkg/apt (see
  screenlets-daemon.py) for example. Maybe even python-smartpm to provide
  compatibility with other distros than Debian/Ubuntu.


+ TODO: individual screenlets
-----------------------------
- separate screenlets into own launchpad project and add global TODO list there
 (if possible, it should be an open project where people can freely upload their 
 own screenlets; that would also for managing all non-core bugs there)
- check through all the 100+ screenlets in the project and prepare some other packs besides basic-pack, for example screenlets-pack-normal (containing all the generally interesting screenlets which work well enough) and screenlets-pack-interesting (containing the rest of screenlets which work, but are not of general interest) etc

+ TODO: individual screenlets (old, move to new sub project somewhen)
---------------------------------------------------------------------
- Sidebar Screenlet - should auto arrange docked screenlets.. very hard to implement
- Improve the storage screenlet.
  Should be "collecting" everything , looking like a bunch of icons that stack on each
  other offer some intelligent way to retrieve stuff from it. (Stacks?)
- Fix the mail Screenlet
- add missing states to Flower (state 7/8, dry 1, wet 1/2)
- improve Flower's "AI" (it is more "artificial insanity" than intelligence :D)
- add custom services to more screenlets (e.g. Notes, MailCheck, ...)
- Ip Screenlet show local and external ip , also improve layout
- Ring Sensors and Sensors show download upload
- Slideshow allow to start with stoped slideshow
- Tomboy display notes sorted by date
- Trash , comply with new gnome defenitions
- Nowplaying - more player api
- Nowplaying , add support to banshee 1.0 when dbus is ready
- All - removed old code , change the some private funtions to public ones from the core


+ IDEAS: core
-------------
- more "crazy connectivity", e.g. make the PlantScreenlet depend on the 
  WeatherScreenlet's data ... when it rains, the plant is growing and gets a
  blossom and when it is too hot the plant drys out
- allow using additional rendering backends like libclutter or even OpenGL to
  fully take advantage of the accelerated desktop (maybe even make the 
  screenlets completely 3d and embed them into one C-host?)
- screenlets-interoperability-with other apps - aantn seems to be working on it 
  in universal applets branch

+ IDEAS: new screenlets
-----------------------
- ProgressbarScreenlet which can be used by other apps to display progress of
  operations? Would remove the need for UI-threading in the calling application
- PacoScreenlet which allows make/install of tarballs by drag&drop onto some
  icon/symbol and a quick access to gpaco. When dragging a tarball onto the
  icon, it should popup an input-dialog where you can add additional 
  args to ./configure ... and maybe set some more options ... then the screenlet 
  should either popup a nice progress bar or use some ProgressbarScreenlet 
  (should launch paco through gksu to get a secure root-login)
- Study Screenlet - a screenlet that retreives random frases from text files.
- Jackfield Screenlet(DONE - however jackfield has bugs...)
- Conky Screenlet??? could be done
- MayBe Screenlet - http://gnome-look.org/content/show.php/May-B?content=45837
- A Dock Screenlet , kinda like the dock in yahoo widgets or the mac dashboard bar
- ColorManagerScreenlet that allows to pick colors from anywhere (and manage
  the colors in a fancy and intuitive way?). Should display in RGB, hex, int.

