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.
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.
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.