Support GUI scaling in much the same way as on Windows, where
the OS setting ("org.gnome.desktop.interface.scaling-factor"
times "...text-scaling-factor") determines the scale that is
used for both graphics and GUI sizing.
As I understand it, a complete solution requires porting to
Gtk3. With Gtk2, the graphical part of a widget doesn't scale.
Text and image labels should scale correctly, though.
Allocation rules:
* Use `as-gtk-allocation' when creating a Gtk widget that is the main
container for a given window<%> object. When the resulting
reference becomes unreachable, the widget will be released with
gtk_widget_destroy() through a finalizer.
* Use `atomically' to create and attach a sub-widget within the main
widget. Don't use gtk_widget_destroy(); the containing widget will
destroy the enclosing widget.
* For temporary objects, use `atomically' to wrap both the allocation
and release.
Every call to a function whose name contains "new" needs to be in one
of those cases.