Widget autosizing. Only works with list so far.
Added a virtual widget get_rect function. Use it with scroller child widgets - decrement button, increment button and nub. Don't need to explicitly refresh their rects anymore. Removed parent_window_move - no longer needed.
Use virtual get_rect function with list scroller.
Calculate list items rect on the fly.
Added a virtual widget is_visible function. Use it with list scroller.
Having some widget state immutable so autosizing works without special handling not viable. Call a virtual update widget function at every desktop entry point (draw, mouse_move etc.) instead.
Abandon autosizing widgets in get_rect, do it in set_rect instead.
Clip tab page children against the page.