Next Previous Contents

4. XML User Interface

Tcl, together with the graphical toolkit extension Tk was chosen to provide a Graphical User Interface for Comanche. As seen in previous sections, the interface can be described in terms of a mark up language based on XML. The interface description can be parsed and abstracted into [incr tcl] objects (see Glossary on Tcl and [incr tcl]). This intermediate abstraction layer allows for different rendering engines. The rendering can transform the objects into DHTML (Dynamic HTML) that can be rendered by a web browser or into a traditional GUI representation. It is possible for the front ends to issue callbacks and manipulate the Tcl object. If XUI objects share the same interface (like string, number), the same GUI object class can manipulate them. Conversely, the same xui object can be rendered differently by different GUI object class: an element of the type structure can be rendered like a collection of property pages or as several groups of directives.

Examples of guiInterfaces are :

4.1 guiString

Can render xuiString and xuiNumber elements.

4.2 guiLabel

It is used to represent elements of the type label

4.3 guiLabeled

All the elements that have a label inherit from this guiObject class. It provides for text alignment of the labels so the interface looks nice.

4.4 guiBoolean

It is used to represent elements of the type guiBoolean

4.5 guiImage

It is used to represent images

4.6 guiChoice

It is used to manipulate xui elements of the type choice. It is generally represented as a combobox. It could easily be represented as a collection of radiobuttons.

4.7 guiList

It is used to manipulate list objects

4.8 guiStructure

Is is used to manipulate xuiStructure elements. xuiStructure elements can represent compound directives or groups of other xuiElements. Depending on certain attributes being present (style) groups of directives can be represented in different ways: horizontally or vertically, surrounded by a labeled frame or with no decoration.

4.9 guiAlternate

Is is used to manipulate xuiAlternate elements.

4.10 guiPropertyPage

This gui element manipulates xuiStructures interpreting them as property pages:

4.11 How it works

This section describes how the process works from the instant that the user requests some information to the point that the user is presented with a property page that he can fill and return the information to the plugin.


Next Previous Contents