
"Mathew Robertson" <mathew.robertson@redsheriff.com> writes:
(f) Bind types to GUI objects, using results of (a).
What does it mean to bind a type to a GUI object? This is something I somewhat do in parts of the GUI code I have. Basically it's being able to tie a variable (class member, global, etc) to be displayed and manipulated "directly" by a GUI widget. For example attaching an enum to a combo-box, or a string to a text-box. Doing something that maps from the type to the widget automatically given the reflection info of the type is not an easy task as there's more to a variable than just the type which one ends up adding when creating the widget bindings, or at least I did.
The FOX GUI has exactly this capability, you can connect a variable directly to the widget, without requiring any glue code at all. In fact, you can connect the same variable to multiple widgets at the same time (eg a 'spinner' widget and an 'editeline'), without requiring the programmer to write any type of callback mechanism.
This works because all GUI events are bi-directional. For more information, read: http://www.fox-toolkit.org/datatarget.html
And one of our Boost.Python users has implemented an improved version of FOX: http://www.nedprod.com/TnFOX/ -- Dave Abrahams Boost Consulting http://www.boost-consulting.com