TODO for golem
==============

- right now it is neccesary to include themes before plugins so that forplugs
  get registered; it'd be nice to just wait to call init() till after the
  rcfile is completly parsed so that this restriction doesn't exist.

- draw_zoomrects is still in the main golem code, along with winbox stuff; the winbox stuff
  must temporarily remain there until some later date when it will be hookable by plugins
  but there will probably need to be a default built into the main golem binary always.

- snapping to edges while moving

- allow a dgroup to inheirt from one or more other dgroups

- do title text colors on a per-dgroup basis; perhaps even depending on if it's focus or unfocused.
  - do render extension for title text

- optimize the reshaping when clients are resized.  you don't need to be reshaping things on the TOP
  or LEFT that have type set to NEAR, etc, unless something is overlapping it like a FULL
  - partially done; being temporarily postponed because it's only noticable when you are running
    golem across a network; for instance to a xterminal, etc.  However, it is a goal for golem to
    work well in those conditions and thus this must be done at some point.
  - shaped decor units with type of DA_FULL are unusable.  this _must_ be fixed

- info windows to give geometry during resize/move.

+ plugins
  o a mechanism for plugins to export apis to other plugins; so a "library" plugin
    can be loaded to provide functions for doing something that several other
    plugins would wish to use
  o plugin management plugin, to load/unload other plugins.
    - this could be semi-problematic because all the plugin parameters are
      freed after rcfile parsing.  At first I'll probably just allow
      unloading and viewing which ones are loaded...this entire idea may
      just be rolled into the following plugin:
  o ipc controlability plugin
    - plugin to allow external programs to send X ICCCM messages to the
      windowmanager to make it do stuff.  to the user this would mean
      the possibility of a shell-like program that has commands that
      tell the window manager to do stuff (a la eesh from Enlightenment).
  o gnome-compliance plugin
  	partially implemented:
	    @ _WIN_LAYER
	    @ _WIN_STATE
	    @ _WIN_HINTS
	    o _WIN_APP_STATE
	    o _WIN_EXPANDED_SIZE
	    o _WIN_ICONS
	    o _WIN_WORKSPACE_NAMES
	    @ _WIN_WORKSPACE
	    @ _WIN_WORKSPACE_COUNT
	    @ _WIN_AREA_COUNT
	    @ _WIN_AREA
	    @ _WIN_CLIENT_LIST
	    @ _WIN_DESKTOP_BUTTON_PROXY
  o improve simple_menus plugin with better themability, keyboard control, etc.
  o circular menus plugin
  @ a 'dock' plugin (the pier)
    - needs to use managed client for stacking layer
  @ animations for zooming/iconification, moved into plugin
    - need support for animations to have option things.  like how fast it should
      go, or how many frames, and the like.
  o maybe an iconbox
  o manpages for plugins, with explainations of parameters
  o allow registration of new keybindings by plugins
  o plugin timer callouts for timed plugin callbacks

Low Priority
============

- Eventually I need the whole colormap shit: I always use 24bit mode or 1bit mode so it's really
  not gonna happen until I'm good and bored.
	http://www.tigr.net/afterstep/X/xlib/color/

- shading windows.  this is a really useless thing if you have workspaces...but it looks pretty
  cool, so I'll add it at some point.
