FIXME:
- non-working .interface<SomeType&>() should provide a better error message than throwing a NullReference exception
- check that all property changes cause ::changed()
- turn item->m_parent into a Container*
- add per-object Blurb slot to type registration at factory
- grep for FIXME in the sources
- AdjustmentSource::get_adjustment() must be called recursively up the heirarchy as long as adj==NULL
- rename left-padding,etc. Alignment properties because they overlap with Table's child proeprty names
  or rename child properties: left-margin, right-spacing, etc...
MISC:
- color names: http://www.w3.org/TR/xhtml-modularization/abstraction.html
  - allow relative color specifications:
    dark(blue)
    light(ref_fg)
    ref_bg
  - requires API that allowes color resolution from a string + reference color (ref_fg,ref_bg)
- put lower-right light into scroll-trough
- cache mouse coords per-display only
- stefan: s/Factory.parse_resource/Factory::parse_resource/
- stefan: s/create_gadget/create_item/
- s/cancel/cancelled/
- implement SliderArea::list_properties()
- check taht all container types really derive from multi/simple-container
- check all property chaining
- fix (upon resizing):
  terminate called after throwing an instance of 'Birnet::Exception'
    what():  Rapicorn::Plane& Rapicorn::Display::create_plane(Rapicorn::CombineType, double): zero-size display
- make Plane.peek() private and rename poke_span()
- allow notification for signal connections and disconnections
- before processing delete event, synthesize focus out (for the window in question) 
  if it has a focus item
- synthesize focus-out before popping up new (modal, override-redirect) windows  
- MAKE COMBINE_NORMAL --> over a real alias
- render(): pass on a RenderBuffer from which planes can be created via intersection
- Table: change shrink logic to shrink according to:
  1) shrink hshrink(1)/vshrink(1) children
  2) shrink expand children
  3) shrink *middle* children before edge (start/end packed) children
     (this preserves menubars or close buttons)
BASIC-SIZING:
- there should be per-window settings for:
  - basic-size: goes from something like 12points & 96dpi => 20 pixels
    can be provided in points, pixels, etc.
    "pixel" here is a scalable standard unit (or, could be)
  - basic-font-size: this is basic-size in points
  - basic-arrow-size: this is derived from basic-size by e.g. * 0.875
EVENTS:
- add_grab/remove_grab should queue a synthesized motion event so enter/leave states are
  updated. (test with overlapping buttons)
- button-press/-release: need to queue extra motion event so enter/leave states are updated
RENDERING:
- digital image compositing modes: http://keithp.com/~keithp/porterduff/
- curve_to approximation:
  http://graphics.idav.ucdavis.edu/education/CAGDNotes/Divide-and-Conquer-Bezier-Curve/Divide-and-Conquer-Bezier-Curve.html
  http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/
- geometry primitives: http://astronomy.swin.edu.au/~pbourke/geometry/
- hershey vector fonts: http://astronomy.swin.edu.au/~pbourke/other/hershey/
- color FAQ: http://www.inforamp.net/~poynton/
