-Makes it easy to extend tinkerbell with new systems & widgets.
-TBImageWidget loads & shows images dynamically (so it's easy to show
images that are rarely showed and should not be part of the skin).
-TBBitmapFragments can be removed individually. Free space is maintained by new TBSpaceAllocator class.
-The glyph cache is now a real cache (forgets least recently used glyph)
-Changes to batcher to handle flushing properly when removing fragments.
-Changes to batcher to wait with validating fragments bitmap until drawing, to avoid flush after each character when the glyph cache is full.
Need to handle context lost & restored in more places than the
skin (in fonts), so the new listener API should be invoked by the
platform instead of just reloading the skin directly.
-Added TBFontRenderer & TBFontFace etc. with glyph caching using
TBBitmapFragment.
-Removed hardcoded window title bar height.
-Lots of work to get TBFontFace & TBFontDescription into use in widgets.
-Replaced old TdFont with a new bitmap font system using a TBFontRenderer
backend. Supports characters in any range, glow and shadow.
-Added utf-8 conversion functions.
-Switched to utf-8 in clipboard implementation (windows)
-Switched to utf-8 on all resource files.
-Skip BOM character at the beginning of resource files.
-Made old TDFont system unicode aware (not supporting displaying unicode, but able to handle it)
The PStyleEdit code was really old and crappy. This an attempt
to clean up, fix bugs and improve the design completly.
Work in progress - There is still issues to fix, especially with undo & linebreaks.
Widgets can be connected to TBWidgetValue by the "connection" attribute in
resources (all TBWidgetValue should have unique names). Then the value
can always be set/get from TBWidgetValue instead of various pieces of UI.
Fixes ON_CHANGE event for TBEditField, TBInlineSelect.
Added handy GetText method that returns the string (with no status). Relying on RVO.