Next: The generated code Up: No Title Previous: Levels for procedures and

# The Implementation of XF

The idea of manipulating an application with an interface builder while it is running was taken from BYO . This approach has the advantage that it reduces the amount of data that have to be used to store the contents of the currently developed application. As all changes are directly applied to the program, the program itself contains all information which is necessary to create a Tcl/Tk file containing the program definition. BYO achieves this by using a Tk feature to communicate with the application running in a different interpreter (see figure ). This approach allows the simultaneous manipulation of several applications.

Figure: BYO design

XF chooses a different approach. It uses one interpreter for both programs (XF and the application to be built). The name spaces of both programs (variables, procedures and widgets) are separated by naming convention (see figure ). This was originally done to reduce the communication traffic, and to reduce the complexity of the application. As the approach of BYO is more flexible, XF

will probably be adapted to (also) support the manipulation of an external application.

Figure: XF design

It is very important that the developer is supported as much as possible. New widgets are created with reasonable default parameters to prevent the need of changing every newly created widget. Nevertheless, every aspect of the application can be changed with XF . If this is not possible in a certain situation, or the user does not want so much support, it is always possible to change the code directly (by hand in an editor). While many interface builders don't allow the manipulation of the generated code, directly changed code can be reused with XF without any restriction.

To allow the extension of XF , there are several well defined internal interfaces, where additional features (like new layouting dialogs or new widget configuration dialogs) can be added. Furthermore, the user is able to adapt most aspects of XF via interactive dialogs. This includes the menubar and iconbar layout, the bindings that are used to manipulate the application program and various aspects of the XF dialog boxes.

The design of the interface of XF itself was also a very important task. Like most interface builders, XF displays the available widget classes in some kind of main window. From here, all features of XF are activated. The various features are implemented as additional dialogs which are popped up when they are activated. All configuration and layouting dialogs are nonmodal, so that the user can change parameters and the layout of various widgets simultaneously.

- The generated code
- Extending XF
  - Supporting new widgets
    - XFAdd.<WidgetClass>
    - XFAddTmp.<WidgetClass>
    - XFConfig.<WidgetClass>
    - XFSaveWidget.<WidgetClass>
    - XFSaveSpecial.<WidgetClass>
  - Initializations at startup
  - Adding procedures named XFProc

Next: The generated code Up: No Title Previous: Levels for procedures and