KNOWN BUGS
----------

- VERY LITTLE CODE DOCUMENTATION
- assets are poorly-located for packaging
- elements with negative padding are not rendered "correctly"
  . reject negative padding?
- element modality needs to be done on a stack
- Tables:
  . are BROKEN and may not be fixed (should be replaced with Grid layout?)
  . table columns don't truncate
  . <ah> Width of horizontal scrollbar thumb is incorrect in test_table
- Allow images for scollbar buttons & slider & background
- drags and moves are unbounded (dx/dy continue to be generated when
  pointer hits the screen boundary, try test_drag and drag up until the
  pointer hits the top of the screen. drag down and see the element offset
  from the pointer)
  Poss. Solution: only use the pointer position, not dx/dy - will require
  remembering the initial offset of pointer -> element being moved.
- TextInput
  . element height is incorrect when field is empty
  . <ah> Word motion events not yet implemented.
  . <ah> Caret motion past edge of field should scroll enough to get caret
    into the center of the field (or to limit).
  . selection out of the text line's bounds doesn't scroll the text
  . cursor movement during selection doesn't create new selection if
    cursor is out of old selection
- PasswordInput
  . <ah> Dot glyphs are clipped by 3 or 4 pixels on right edge.
    <rj> Appears to be a bug in pyglet.font - see pyglet/test/font/BULLET.py
- <ah> Clicking on non-focusable background should not remove focus from
  text field.  -- <rj> does this apply to *all* focusable elements?
- files referenced in XML are not loaded relative to the XML file
- Grid layout background colour for test_layout_grid second row changes
  when resized



DEFINITE AREAS OF IMPROVEMENT
-----------------------------

Allow style as an argument to Element construction.

Text size handling is currently a hack because many fonts have ridiculous
descender values. We're also forcing pyglet to not use glyph substitution
because that results in a huge descender *regardless* of the font
specified.

To get around this, I am going to look into changing how text positioning
and sizing is specified in wydget:

1. all text will be positioned by baseline offset from bottom of element
2. size of resultant rendered text will be overridable


KNOWN AREAS OF (POSSIBLE) REWRITING
-----------------------------------

Frames could be the only things that have children:

- move all child handling stuff from Element to Frame
- get rid of Frame.is_transparent
- lots of other cleanups as a result

Use layout's element model at the core.

The style module and the way XML files are styled will be overhauled at
some point. The current styling of elements is unlikely to change
significantly though. Never say never, of course.

The table implementation is terrible.

