KUIML
Blue Cat's User Interface Programming Language
Scripting

Once the structure of the user interface and data model have been described using KUIML elements and connected together with links, it is possible to write scripts that perform more complex actions on the data model on behalf of the end-user. Most of the elements and their attributes are available to the scripting engine (see the "Exp." column on each element page).

KUIML currently uses the angelscript language, but may be extended to other scripting languages in the future. The reason for choosing angelscript is that it is statically typed and has a syntax close to most common languages such as C++, Java, C# or javascript.

Object Types

KUIML Basic Types are made available to the scripting engine using the following classes:

Groups and Properties are currently not exposed. A tree structure based on objects names is also created in memory with anonymous class names. Use the auto keyword to access such objects without knowing the type.

Objects Exposure

For performance reasons, the KUIML engine does not create script objects for all elements that could be exposed by the data model.

So it is necessary to explicitely describe the objects that will be used by scripts so that they are properly exposed. See the "requires" attribute of the SCRIPT and EXPOSED_OBJECTS element.

You can of course expose all objects using the '*' wildcard to start writing the scripts, but exposed elements should definitely be filtered before releasing, or customers may encounter performance issues, especially with complex user interfaces with multiple elements.