KUIML
Blue Cat's User Interface Programming Language
KUIML Versions History
2024/05/10

V2.7.4


  • Angelscript engine updated to latest version (2.37), with a couple of improvements and much faster execution on function calls.
  • Default value for CELL's font_size_mode has been changed to "character" instead of the deprecated "cell" value. This may impact text sizes if still using the deprecated default mode.
2024/04/15

V2.7.3


  • New WINDOW element to open system windows and create a new widgets hierarchy.
  • New Sequence action type.
  • New LoadUrl (Experimental) element to make http and https requests.
  • New TEMPLATE_UNLOAD element to unload templates.
  • KUIML version is now exposed to the engine as a build time variable _KUIML_VERSION_.
  • New StopWatch extension for Angelscript: GlobalNamespace::StopWatch.
  • New utf-8 utilities extension for Angelscript: utf8.
  • Updated and fixed a couple of formatting issues in documentation.
2022/03/01

V2.7.2


  • New innerSVG attribute exposed on the svg element.
  • Skin text color now defaults to system defaults for dark mode compatibility.
2021/02/15

V2.7.1


2020/06/15

V2.7


2019/09/01

V2.6


  • Added drag and drop support.
  • Added lazy loading support to KUIML_WIDGET.
  • Added background color attribute to WIDGET
  • New options for the INCLUDE element.
  • Locked attribute can now be set to "never".
  • New experimental build-time scripting that can be used with VARIABLE elements.
  • New CANVAS widget.
2019/03/05

V2.5


2017/10/15

V2.4


  • Dynamic KUIML code loading with KUIML_WIDGET element.
  • BeginCapture and EndCapture actions added to parameters.
  • GUI scaling and zooming, including minimal svg images support and image resources scaling.
  • Added support for lock metadata.
  • LOAD_FONT now available on Mac.
  • Misc other improvements.
2016

V2.1 to 2.3


Non-public versions.
2015/11/25

V2.0


  • KUIML Scripting support.
  • Event model to trigger actions.
  • New action types.
  • New openGL scripting widget.
  • New documentation.
  • Many other improvements for existing elements.
2013/02/15

V1.9.1


Layout:

  • Full dynamic layout support: width, height attributes are now exposed and can be dynamically changed at runtime.
  • h_offset and v_offset attributes are now availlable on cells for more dynamic layout capabilities.

Widgets:

  • "pushed" read-only attribute is now exposed for invisible buttons as well as for sliders.
  • Reset modifier key can now be modified for all widgets (not recommended for consistency though).

Model:

  • New ACTION model element to specify custom behaviors.
  • New ACTION types: DisplayMessageBox, DisplayFileOpenDialog and OpenURL actions are now available.
  • Custom text display can now be specified for parameters, curves or surfaces.
2012/03/30

V1.9


Misc:

  • Added commonly used patterns as language extensions.
  • Parameters and curves may now define their own response curves. This curve is used by default for widgets if the response curve is not specified.
2011/07/11

V1.8


Misc:

  • Added png images support.
  • Widgets that can be pushed (buttons, menus, sliders, knobs...) now expose a read only "pushed" attribute.

Added rounding capabilities to parameter to text conversion elements (PARAM_TEXT or PARAM_TO_STRING_LINK) thanks to the significant_digits attribute.

2010/11/15

V1.7


Model:

  • all parameters now expose default/min/max values as parameters.

Language:

  • New REPEAT tag for build time loops.
  • New LOCAL_VARIABLE tag to create temporary local variables.
  • You can now use formulas to define variables.
  • Variables can now be overriden with no warning (using the "override" attribute).

Added rounding capabilities to parameter to text conversion elements (PARAM_TEXT or PARAM_TO_STRING_LINK) thanks to the significant_digits attribute.

2010/08/29

V1.6.2


Model:

  • New PARAM_ANIMATOR element for animations.

Misc:

  • enumeration parameters now support non zero minimum value.

2009/09/20

V1.6.1


Model:

  • Added PARAM_TO_STRING_LINK links to convert parameter values into string values.

Widgets:

  • Added TEXT_FIELD widget that displays a string like a TEXT widget and lets the user edit it.

2009/08/10

V1.6


Model:

  • Now supports mathematical formula.

New 3D Engine:

  • Added VIEWER_3D widget that displays a 3D scene
  • Added surface and grid 3D objects

2009/06/26

V1.5


Layout:

  • Introduced dynamic layout (some layout parameters are now exposed so that the layout can be modified after the skin has been built).
  • New "display" attribute.
  • New "flex" attribute to make cells flexible.

Misc:

  • Added Mac compatibility information.
  • Added pixel range attribute to slider to modify the default mouse range behavior.

2008/06/05

V1.4.4


Language:

  • new TEMPLATE_INNER_CONTENT for recursive templates support.

Widgets:

  • new x,y and z enable parameters for Joystick.
  • new INVISIBLE_PARAM_BUTTON, INVISIBLE_PARAM_TOGGLE_SWITCH and INVISIBLE_PARAM_MENU_BUTTON widgets.

2008/03/03

V1.4.3


Widgets:

  • new IMAGE_PARAM_MENU_BUTTON widget to edit a parameter with a popup menu.
  • new XY_CURVES_GRAPH to display to curves on a single graph.

Model:

  • new STRING_MULTI_LINK to link and concatenate multiple strings.
  • new CURVE_MULTI_LINK to link and make computations with several curves.
  • new enum_values exposed string on parameters to dynamically change the strings for an enumeration parameter

Misc:

  • new priority parameter in the SKIN element for user interface update.
  • deprecated the width and height attributes for fonts (you should now use the size attribute instead).

2008/02/07

V1.4.2 (Non public)

2008/02/07

V1.4.1


Widgets:

  • new XYZ_IMAGE_PARAM_JOYSTICK widget to edit three parameters with a single control.
  • new font_size attribute on the layout cells.
  • modified the TEXT_EDIT_BOX widget font behavior.
  • new PARAM_TEXT_EDIT_BOX widget to enter parameter values as text.

2007/12/10

V1.4 (Non public)


Model:

  • new STRING object type and STRING_LINK.

Widgets:

  • TEXT widgets (including Tootips) now support linking to STRING objects instead of static value.
  • new XY_ZOOM_SELECT_PAD widget.
  • new TEXT_EDIT_BOX widget to edit strings.

2007/08/30

V1.3.5


Misc:

  • new parameters exposed.

2007/08/30

V1.3.4


Misc:

  • new {text_value} field available for PARAM_TEXT widget.

2007/08/13

V1.3.3


Model:

  • new Action concept.
  • new IMAGE_ACTION_BUTTON widget to trigger an action.

Language:

  • New INCLUDE_ONCE element to include a file only once.

2007/05/20

V1.3.2


Model:

  • PARAM_LINK and PARAM_CONNECTION objects now supports 'diff' mode for differential linking.
  • PARAM_CONNECTION object can be used as a constraint or not.

Language:

  • New UNDEFINE element to erase defined elements.

2007/03/02

V1.3.1


Non public version.

2007/03/02

V1.3


Widgets:

  • New GRID widget (superseding the CURVE_GRID widget).
  • New RULER widget (superseding the CURVE_XSCALE and CURVE_YSCALE widget).
  • New XY_PARAM_PAD widget.
  • New SURFACE_COLORMAP_2DPLOT widget to draw surfaces in 2D.
  • New COLOR_SCALE widget.
  • New IMAGE_PARAM_TOGGLE_SWITCH widget.
  • New offscreen_type attribute to choose the type of offscreen used for widgets with anti flicker on.
  • New loop attribute on IMAGE_PARAM_BUTTON widgets.
  • Param Viewing widgets max zoom can be set.

Layout:

  • New margin attribute.

Model:

  • New CURVE element.
  • New CURVE_LINK element.
  • New SURFACE_VALUE_PARAM element.
  • New SURFACE_FROM_CURVE_OVER_TIME element.
  • New paused attributes on "OVER_TIME" elements.
  • New trigger conditions properties on LINK objects.
  • New 'persistent' attribute on model objects to make them persistent.

Language:

  • New TEMPLATE element for code reuse.
  • New VARIABLE element for attribute value sharing.

2007/01/18

V1.2.5


Widgets:

  • New XYZ_PARAM_SCRATCH_PAD 3D control widget.
  • All controls and viewers are now zoomable.
  • True log scale can be achieved thanks to the new scale attribute on parameters and curves widgets.

Graphics:

  • Window opacity can be modified by the skin (exposed as a parameter of the skin).

Misc:

  • The "normalized" attribute is now available for PARAM_MULTI_LINKS.
  • A new "Exp." (for "exposed") column specifies for each attribute in which version the attribute was exposed (meaning it can be referenced by links and changed at runtime by the user). This property used to be undocumented.

2006/11/06

V1.2.4


Misc:

  • Users can now access a fine tuning mode on all parameter control widgets by hitting the 'SHIFT' key. The ratio can be customized within the skin.

2006/10/16

V1.2.3


Graphics:

  • A new 'anti_alias' attribute is available on CURVE_GRAPH objects to draw smoothed graphs (activated by default).
  • new 'sample_rate' attribute on CURVE_GRAPH objects.

2006/09/10

V1.2.2


Objects & Links Management:

  • New CURVE_FROM_PARAM_OVER_TIME element to create a curve containing the evolution of a parameter over time.
  • The PARAM_LINK and PARAM_CONNECTION objects now support the "normalized" property.

Graphics:

  • font size can now be expressed as a percentage of the current size or as an increment from the current size.

2006/08/24

V1.2.1


Misc:

  • The LOAD_FONT directive enables you to load custom fonts and use them inside the skin.
  • A "fine tuning" edit box now appears when the user double clicks on a control widget.

2006/08/15

V1.2


Misc:

  • Parameters can now be made persistent thanks to the PERSISTENT_PARAMS statement.

2006/05/15

V1.1


Layout:

  • New LAYER_STACK layout element.
  • New TABLE and TABLE_ROW layout elements.
  • The h_size and v_size attributes of a cell can now be proportional to the parent cell size using '' at the end of the value.

Widgets:

  • All widgets now support transparency thanks the 'opacity' attribute.
  • New CURVE_GRAPH widget to display graphs.
  • New CURVE_GRID widget to display a graph grid.
  • New CURVE_XSCALE widget to display the x-scale of a graph.
  • New CURVE_YSCALE widget to display the y-scale of a graph.

Objects & Links Management:

  • All elements now have an 'id' attribute so that they can be uniquely identified.
  • New PARAM object to create your own parameters for the user interface.
  • New PARAM_LINK object to make a link from a parameter to another.
  • New PARAM_MULTI_LINK object to make a link from several parameters to another one.
  • New PARAM_CONNECTION object to make a link between two parameters.
  • Some element attributes are now exposed and can be linked together thanks to the PARAM_LINK and PARAM_CONNECTION objects.

Misc:

  • There is now a refresh_time_ms parameter in the SKIN to adapt the refresh rate of each parameter or curve in the user interface to optimize UI CPU usage.

2006/02/26

V1.0


First version.