The advantages of the Theme Designer
The Theme Designer has a number of advantages if compared to the script file usage and theme designs of other 4GL tools vendor products:
Embeded into the graphical client
The Theme Designer is opened from within the program, so every user can adjust the program according to their preferences (Permissions can be specified). The theme designer can be invoked from the client (if the application administrator enables this option) or within a 4GL application with the help of the built-in 4GL function edit_theme(). It takes the name of an xml file which stores the theme options as the argument.
Intuitive User Interface
The interface of the Theme Designer is intuitive and easy to understand, there is no need to memorize the names of the script options and the precise address of the object you want to modify, because the object can be selected from the list of objects present in the program.
Visual Design Tools and WYSIWYG
The creation of an XML file using the Theme Designer is visual. You can see the changes take effect right away while the program is suspended. The Theme Designer has a user-friendly graphical interface which allows you to make the changes and see them take effect right away on a running application.
Dynamic Theme Assignement
You can select what set of display options apply at what time of the program execution. A XML file can be loaded at runtime, overriding the previous display settings, so one program can have several display patterns. Any theme XML file containing the look and feel settings can be uploaded to the application at any time during the runtime using the apply_theme() function which takes the theme file name as the argument. So if you don't want a user to change the design randomly, you can supply your application with a number of themes available from a menu, like most applications do nowadays.
Object Grouping and Class Handling
The Theme Designer has convenient object grouping such as child-parent relation, classes and pseudo-classes. It is also possible to reference each object by its ID.
The Object Selector (Filter)
Any graphical object (window, form, grid, field, label, images, toolbar icon etc..) can be selected with a simple mouse click to apply graphical settings.