- GUI builders need to interpret user gestures into code to build an interface
- Some XML applications interpret XML to produce user interfaces for editing values
- Is there such a library now?
- If there were such a library, how would you expect it to be used?
- If there were such a library, how would you expect it to be organized?
Traditionally, this sort of thing has been done via the option database I believe; I think Brent Welch's book describes how to do it. XML seems like a nicer solution to me, though. But I don't think I'd tie "user gestures" in too strongly. On the other hand, it's easy to see how a GUI Builder could store the program's structure as a DOM tree, which could then be loaded and saved as an XML document. Then, if they were ordered appropriately, the app could avoid the cost of including the DOM by parsing the XML document as a sequence of streaming events (a la TclXML) and building the app as it goes. -- WHD
I've done this sort of thing for years, though the specifications themselves have tended to be static (in some sense). Take a look at the GUI code used to configure the tiprender system [1] which reads a stylized GUI specification from a file and builds (and runs) the whole GUI based on that. -- DKF
It's true that the GUI builder could and should store the interfaces' current definition somewhere (so you can save and edit it later), but if your GUI builder has a button for creating a widget, some version of the widget needs to be created as soon as the button is pushed. That's the kind of "user gesture" I had in mind.I see a process of perhaps three parts:
- Reading the file or interpreting the gesture to determine the intent
- Calling some helper to generate the tcl code that matches the intent
- Either storing that code or executing that code to make the actual interface appear.
- I can try to embed the field name and record type into the widget name path.
- I can construct a table that maps the widget name path to a value that contains the field name and record type.
- I can set the validatecommand to call a validation proc with the additional parameters that I need (added 25 Sep 2002).
See also (links added as they are found)
- Menus made easy
- MetaGUI I believe is one approach to data driven tk programming. AEC
Is there any documentation on the format of the .ui files associated with SpecTcl? They are one example of the serialization (storage format) for GUI specifications.escargo
AM I just created a small package called "Poor man's GUI" - just the thing that might be useful here. See the Wiki page A poor mans GUI.
A couple of conferences ago, stevel presented a paper on kitview.