-Recalculate content_width properly if the widest line shrink. Also prevent this from happening recursively by locking scrollbar updating during most intensive operations.
-Setting text alignment fixes.
-Avoid setting unnecessary clipping.
-Some cleanup
-Test button in resource window
-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.
Makes much more sense to update states that might affect layout before
the layout. Otherwise changes appear a frame too late.
Might be good with better naming on theese (OnProcess -> OnLayout etc.)
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.
Added Widget::PaintProps that inherit text-color to child widgets that hasn't specified text-color in the skin or has no skin element.
Added default text-color property in skin, that will apply to all specified skin elements.
Added color in the renderer DrawString method.