Added nested and empty tabs to the test program, and fixed up relevant documentation.
Added an optimization to the Tab code on Windows where only the current tab was resized, thinking it would solve flicker issues. It did not, and GTK+ resizes all tabs, so I'm keeping this in mergeback/ for now.
Mostly fixed Labels on Windows being offset slightly; need to finish the fix by making it not apply to standalone Labels and adding comments.
Finished the previous commit.
Settled the placement of functions formerly in sizing_windows.c and updated the winapi_windows.h header file to suit.
Big change: with the current event model, it's safe to call Area.RepaintAll() (and the future Area.Repaint()) from within AreaHandler.Key() and AreaHandler.Mouse(); get rid of the bool returns from each. The future Area.Repaint() is important; the bool returns repainted the whole Area, which may not be optimal.
Removed unnecessary TODO from xsizing_darwin.m.
Renamed display() to areaRepaintAll() and resolved a TODO on the Mac OS X side.
Changed PrefSize to PreferredSize throughout.
Started splitting apart xsizing_darwin.m and rearranging objc_darwin.h.
Removed TODO about duplicate case labels (it's illegal in C too; citing the standards (both C89 and C99) as proof).
Removed TODO in area_darwin.m; -[NSView displayRect:] is the answer.
Removed TODO about nil receiver in uitask_darwin.m by checking for nil anyway.
Settled NSBitmapImageRep TODOs on the Mac OS X backend.
More .m file restructuring on the Mac OS X backend.
Fixed text field/label bordering on Mac OS X.
Really fixed Mac OS X text box borders this time =P
Removed borders from Areas on Mac OS X.
More future plans.
Made a more intelligent Table.preferredSize() for Mac OS X.