That looks good , though we'll have to make sure that it's not going to change the MGui license to GPL -- that will exclude a lot of places on principle.
Here's a fun thing to think about -- what's the most elegant way to make a compound widget feel like a regular widget to other code? This would make a spinbox:
with HorizontalStretchForm(key="IntSpinner#") as root:
field = IntField(width = 256, height = 24)
with VerticalStretchForm(width = 24) as box:
up = IconTextButton(height = 12, style='iconOnly', image='up')
down = IconTextButton(height = 12,style='iconOnly', image='up')
but you'd like to be able to do
sometihing = IntSpinner()
something.value = 4
I think we'd need to create a property accessor that knows how to grab a sub-control's properties, just not sure the most minimalist way to do it..