PLUG'N SCRIPT
rapid plugin development
Tutorial
DSP
KUIML
How-to
Scripts
  • Tutorial
  • Element Reference
Language basics
  • SKIN
  • DUMMY
  • INCLUDE
  • INCLUDE_ONCE
  • DEFINE
  • UNDEFINE
  • VARIABLE
  • LOCAL_VARIABLE
  • TEMPLATE
  • TEMPLATE_INNER_CONTENT
  • REPEAT
Data model
  • PARAM
  • ACTION
    • Action types
  • ACTION_TRIGGER
UI Layout and positioning
  • CELL
  • TABLE
UI Widgets
  • TEXT
  • TEXT_FIELD
  • TEXT_EDIT_BOX
  • CANVAS
    • Graphics API
  • svg
Common attrubutes
  • For all elements
  • Widgets
  • Param Widgets
  • Param Controls
  • Param Info Viewers
  • Text Widgets
  • Surface Viewers
  • Curve Viewers
  • 3D Objects
  • Parameters mapping
KUIMLElement ReferenceKUIML_WIDGET
March 30, 2021

KUIML_WIDGET

Widget that can dynamically load KUIML code ("sub-skin") via a file or string. It can be used to load different content depending on the context, or load parts of a skin dynamically, only when required.

Warning: because all objects in KUIML may be stripped when not used by the skin, you need to make sure that the data accessed by the content of a sub-skin that is loaded at runtime will not be stripped, using for example the REQUIRED_OBJECTS element.

Attributes brief detailed show all inherited

Name DescriptionDefault
Exposed: v. 2.4srcpath to the kuiml file to load (relative to current skin path, root_path attribute or absolute)empty
Exposed: v. 2.4innerKUIMLKUIML code to be loaded by the widgetOverrides the src attribute when set (loads KUIML code from a string instead of file)empty
root_pathList of root directories that can be used as root paths, separated by ';'Root paths used to find skin files defined by relative paths. This is useful when the root location of the skin files may change (Mac vs Windows, or username dependent paths etc.)empty
persistentSets the persistency of the widgetWhen this property is set to 'true', the content of the KUIML widget is persistent: this includes the source (file or string) as well as the content of all persistent objects created inside the sub-skinfalse
Exposed: v. 2.6load_enabledWhen set to false, KUIML content is not loaded even when explicitly set by a script or linkThis attribute can be used for lazy loading KUIML widgets (loading on demand). Set to false by default and set to true when skin loading requiredtrue
import_templatesImport TEMPLATEs from parent skinSet this to false if you don't need parent skin templates and thus speed up loadingtrue
import_definesImport DEFINEs from parent skinSet this to false if you don't need parent skin defines and thus speed up loadingtrue
import_variablesImport VARIABLEs from parent skinSet this to false if you don't need parent skin variables and thus speed up loadingtrue
Inherited from widgetsRead about `widgets`
Exposed: v. 1.2opacityOpacity of the widget0% is totally transparent, 100% is opaque100%
Exposed: v. 1.6visibleShow/hide the widget, does not impact the layout, as opposed to the cell's display attributetrue
Exposed: v. 1.6enabledEnable/disable the widget. When disabled, the widget does not react to mouse or keyboard events. it is displayed but inactive.true
cursorCursor to display when the mouse is over the active part of the widgetThis property works only for mouse sensitive (aka non-passive) widgetsSystem...
mouse_sensitiveEnables or disables mouse control on widgetsWarning: for advanced users only. Do not use this property that is set according to widget type, except if you really want to force mouse sensitivity (to enable cursor change etc.)Dependi...
auto_focusEnables or disables auto focusWhen enabled, a widget gets focus when the mouse is over it (you do not need to click on it). When a widget has focus it receives the keyboard events. auto_focus works for mouse_sensitive widgetsDependi...
handled_keysList of keys handled by the widget, which will trigger key_pressed and key_released events(Experimental) Use the character correponding to the selected key or 'all' for all keys, or one of the following for system keys: F1-F20, Enter, Space, Tab, Esc, Shift, Alt, Cmd, Ctrl, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, PgUp, PgDn, Insert, Delete, BackSpaceempty
Exposed: v. 2.7.1default_keys_enabledEnable or disable the default keys handled natively by the widget.(Experimental) you can disable the default keyboard behavior for any widget if you want to write your own.true
Drag and Drop Attributes
drag_source_idsList of objects to use as drag sources for drag and drop operations (each one may have a different applicative type)empty
drag_applicative_typesList of applicative types to use for each drag source defined by the drag_source_ids list Experimental since 2.7: use the system::text applicative type to drag the content of a parameter or string as system text (can be dropped into any application that supports drag and drop of text content)empty
drag_operationsList of drag operations allowed. 'copy' or 'move' operations are currently supportedempty
drag_contextOptional string to define the serialization context used for the drag operationempty
Exposed: v. 2.6drag_enabledEnable drag operations on the widgettrue
drop_target_idsList of objects to use as drop targets for drag and drop operations (each one may have a different applicative type)empty
drop_applicative_typesList of applicative types to use for each drop target defined by the drop_target_ids list. Experimental since 2.7: use the system::text applicative type to drop text directly into a parameter or stringempty
drop_file_typesList of supported file types to use for each drop target defined by the drop_target_ids list. Each wild card may contain several extensions, separated by ','. For example, with "*.*;*.doc,*.txt", the first drop target will accept all files, and the second one will accept only .doc and .txt filesempty
dropped_file_path_string_idsList of string objects than can receive the path of a file that was dropped, for each drop target defined by the drop_target_ids listempty
drop_contextOptional string to define the deserialization context used for the drop operationempty
Exposed: v. 2.6drop_enabledEnable drop operations on the widgettrue
Exposed Attributes And Events (read-only)
Exposed: v. 2.6mouse_overSet to true when the mouse is over the active area of the widgetfalse
Exposed: v. 2.7mouse_downBit field containing the state of mouse buttons: first bit is left button, second is right and third is mid button. When no button is pushed, the value of mouse_down is zeroExperimental0
Exposed: v. 2.7mouse_position.xHorizontal position of the mouse in the widget (relative to the upper left corner of the widget)The value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7mouse_position.yVertical position of the mouse in the widget (relative to the upper left corner of the widget)The value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7mouse_screen_position.xAbsolute horizontal position of the mouse on the screenThe value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7mouse_screen_position.yAbsolute vertical position of the mouse on the screenThe value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7focusSet to true when the widget has keyboard focus and receives keyboard eventsfalse
Exposed: v. 2.7key_pressedEvent fired when a key (filtered by the handled_key list) is pressedExperimental
Exposed: v. 2.7key_pressed.keylast virtual key that was pressedExperimental: enum values are subject to change, check the displayed value (text)
Exposed: v. 2.7key_pressed.characterCharacter(s) corresponding to the last pressed key, if it was a character key (key_pressed.key=0)Experimental
Exposed: v. 2.7key_releasedEvent fired when a key (filtered by the handled_key list) is released
Exposed: v. 2.7key_released.keylast virtual key that was releasedExperimental: enum values are subject to change, check the displayed value (text)
Exposed: v. 2.7key_released.characterCharacter(s) corresponding to the last released key, if it was a character key (key_released.key=0)Experimental
Exposed: v. 2.6draggingSet to true when a dragging operation is in progress for this widgetfalse
Exposed: v. 2.6drag_operationtype of the current drag operation (None, Copy, Move)Experimental: enum values are subject to changeenumera...
Exposed: v. 2.6droppingSet to true when a dropping operation is in progress for this widgetfalse
Exposed: v. 2.6drop_operationtype of the current drop operation (None, Copy, Move)Experimental: enum values are subject to changeenumera...
Inherited from cellRead about `cell`
Properties Relative to Parent Cell
Exposed: v. 1.5v_alignVertical alignment of the cell in its parent cellcenter
Exposed: v. 1.5h_alignHorizontal alignment of the cell in its parent cellcenter
Exposed: v. 1.9.1 (read only)h_positionHorizontal position of the cell in its parent cellIf defined, it deactivates the h_align property. Use this attribute for horizontal pixel-positioning. The position is relative to the parent cell
Exposed: v. 1.9.1 (read only)v_positionVertical position of the cell in its parent cellIf defined, it deactivates the v_align property. Use this attribute for vertical pixel-positioning. The position is relative to the parent cell
Exposed: v. 1.9.1h_offsethorizontal offset of the cell from the position computed by the layout engineUsing this property lets you move a cell without changing the layout around it. The position is relative to the parent cell0
Exposed: v. 1.9.1v_offsetvertical offset of the cell from the position computed by the layout engineUsing this property lets you move a cell without changing the layout around it. The position is relative to the parent cell0
Exposed: v. 1.5flexflexibility of the cellThis attribute is used when the parent cell is a row or a column and has free space to distribute to children cells (for example for a fixed size parent cell that is larger than the sum of its children cell sizes). The remaining space will be distributed among children cells according to the flex attribute value0
Exposed: v. 1.5displayinclude/exclude the cell from the layoutWhen set to false, the content of the cell is not displayed (not visible) AND is not taken into account to compute the layout (the cell is ignored)true
Cell Properties
Exposed: v. 1.5layout_typeSelects a layout type: row, column or layer_stackDetermines how the children cells will be disposed inside the cell: as a row, a column or a stack of layers (each cell on top of each other, the first cell in the background, and the last one on the foreground)column
Exposed: v. 1.9.1 (pixels)widthForced width of the cellIf not present, the width will be automatically computed from the children cells widths and layout rules
Exposed: v. 2.0min_widthminimum width allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not smaller than min_width pixels
Exposed: v. 2.0max_widthmaximum width allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not larger than max_width pixels
Exposed: v. 1.9.1 (pixels)heightForced height of the cellIf not present, the height will be automatically computed from the children cells heights and layout rules
Exposed: v. 2.0min_heightminimum height allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not smaller than min_height pixels
Exposed: v. 2.0max_heightmaximum height allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not larger than max_height pixels
marginmargin of the cellMay be overridden by the h_margin or v_margin attributes0
Exposed: v. 1.5h_marginHorizontal margin of the cell0
Exposed: v. 1.5v_marginVertical margin of the cell0
Exposed: v. 1.5spacingSpace between children cells0
spacing_flexFlex value to allocate extra space between children cellsSee the flex attribute for more details0
Exposed: v. 1.5internal_v_alignVertical alignment of children cells group inside the cellThis attribute is useful only if the cell has a fixed size, and the sum of the sizes of the layouted children cells is different from the cell size. In this case you may want to choose how you align the children cells group inside the parent cell. Used only for 'column' type cell, the horizontal alignment being set individually for each child cellcenter
Exposed: v. 1.5internal_h_alignHorizontal alignment of children cells group inside the cellThis attribute is useful only if the cell has a fixed size, and the sum of the sizes of the layouted children cells is different from the cell size. In this case you may want to choose how you align the children cells group inside the parent cell. Used only for 'row' type cell, the vertical alignment being set individually for each child cellcenter
Exposed: v. 2.0reflowwhen set to true, the layout engine will treat chidren cell as reflowable elements. For a fixed height column, the width is computed accordingly, and for a fixed width row, the height is computed accordinglyvalid only for columns with fixed height or rows with fixed widthfalse
Exposed: v. 2.4flipdisplay children cells in reverse order (right to left or bottom to top)currently valid only for COLUMN and ROW elementsfalse
Inheritable properties: these text properties are inherited by children cells (and can be overridden)
font_faceName of the font for text contained in the cell and sub cellsFonts are not the same on all systems, so you should carefuly select the fonts or ensure that users have specific fonts installedempty
font_sizeSize of the font for any text contained in the cellIf the value starts with + or -, the resulting font size is incremented by this value from the current font size. If the value ends with a %, the resulting font size is the corresponding proportion of the current font size. This value is inherited by children cells but can be overriddenSystem...
font_size_modeDefines how font size is computed to select the right font.Default value is cell mode for backward compatibility reasons but it has been deprecated. It is however recommended to use "character" mode for more precise font size selection. Using the cell size to select the font is less precise and not compatible with standard font sizes expressed in character height.cell
font_weightWeight of the font for any text contained in the cellThe value is inherited by children cells but can be overriddenSystem...
font_styleStyle of the font for any text contained in the cellThe value is inherited by children cells but can be overriddenSystem...
font_qualityQuality of the fontThe value is inherited by children cells but can be overriddenSystem...
font_escapementEscapement (angle in degrees) of the fontThe value is inherited by children cells but can be overridden. If the escapement of the font is non null, the formating options of the text widgets won't apply0
text_decorationDecoration of the text for any text contained in the cellThe value is inherited by children cells but can be overriddenSystem...
text_colorColor of any text contained in the cellThe value is inherited by children cells but can be overriddenSystem...
Common attributesRead about `common`
idIdentifier of the elementThe id of an element has to be globally unique. Two elements cannot have the same identifierempty
Name Value type Default Description Comment
Exposed: v. 2.4srcFile pathemptypath to the kuiml file to load (relative to current skin path, root_path attribute or absolute)
Exposed: v. 2.4innerKUIMLstringemptyKUIML code to be loaded by the widgetOverrides the src attribute when set (loads KUIML code from a string instead of file)
root_pathstringemptyList of root directories that can be used as root paths, separated by ';'Root paths used to find skin files defined by relative paths. This is useful when the root location of the skin files may change (Mac vs Windows, or username dependent paths etc.)
persistentbooleanfalseSets the persistency of the widgetWhen this property is set to 'true', the content of the KUIML widget is persistent: this includes the source (file or string) as well as the content of all persistent objects created inside the sub-skin
Exposed: v. 2.6load_enabledbooleantrueWhen set to false, KUIML content is not loaded even when explicitly set by a script or linkThis attribute can be used for lazy loading KUIML widgets (loading on demand). Set to false by default and set to true when skin loading required
import_templatesbooleantrueImport TEMPLATEs from parent skinSet this to false if you don't need parent skin templates and thus speed up loading
import_definesbooleantrueImport DEFINEs from parent skinSet this to false if you don't need parent skin defines and thus speed up loading
import_variablesbooleantrueImport VARIABLEs from parent skinSet this to false if you don't need parent skin variables and thus speed up loading
Inherited from widgetsRead about `widgets`
Exposed: v. 1.2opacitypercentage100%Opacity of the widget0% is totally transparent, 100% is opaque
Exposed: v. 1.6visiblebooleantrueShow/hide the widget, does not impact the layout, as opposed to the cell's display attribute
Exposed: v. 1.6enabledbooleantrueEnable/disable the widget. When disabled, the widget does not react to mouse or keyboard events. it is displayed but inactive.
cursorcursorSystem DefaultCursor to display when the mouse is over the active part of the widgetThis property works only for mouse sensitive (aka non-passive) widgets
mouse_sensitivebooleanDepending on widgetEnables or disables mouse control on widgetsWarning: for advanced users only. Do not use this property that is set according to widget type, except if you really want to force mouse sensitivity (to enable cursor change etc.)
auto_focusbooleanDepending on widget, usually 'true' for mouse_sensitive widgetsEnables or disables auto focusWhen enabled, a widget gets focus when the mouse is over it (you do not need to click on it). When a widget has focus it receives the keyboard events. auto_focus works for mouse_sensitive widgets
handled_keyslist of keys, separated by ;emptyList of keys handled by the widget, which will trigger key_pressed and key_released events(Experimental) Use the character correponding to the selected key or 'all' for all keys, or one of the following for system keys: F1-F20, Enter, Space, Tab, Esc, Shift, Alt, Cmd, Ctrl, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, PgUp, PgDn, Insert, Delete, BackSpace
Exposed: v. 2.7.1default_keys_enabledbooleantrueEnable or disable the default keys handled natively by the widget.(Experimental) you can disable the default keyboard behavior for any widget if you want to write your own.
Drag and Drop Attributes
drag_source_idslist of identifiers, separated by ';'emptyList of objects to use as drag sources for drag and drop operations (each one may have a different applicative type)
drag_applicative_typeslist of applicative types, separated by ';'emptyList of applicative types to use for each drag source defined by the drag_source_ids list Experimental since 2.7: use the system::text applicative type to drag the content of a parameter or string as system text (can be dropped into any application that supports drag and drop of text content)
drag_operationslist of drag operations separated by ';'emptyList of drag operations allowed. 'copy' or 'move' operations are currently supported
drag_contextstringemptyOptional string to define the serialization context used for the drag operation
Exposed: v. 2.6drag_enabledbooleantrueEnable drag operations on the widget
drop_target_idslist of identifiers, separated by ';'emptyList of objects to use as drop targets for drag and drop operations (each one may have a different applicative type)
drop_applicative_typeslist of applicative types, separated by ';'emptyList of applicative types to use for each drop target defined by the drop_target_ids list. Experimental since 2.7: use the system::text applicative type to drop text directly into a parameter or string
drop_file_typeslist of file types wildcards, separated by ';'emptyList of supported file types to use for each drop target defined by the drop_target_ids list. Each wild card may contain several extensions, separated by ','. For example, with "*.*;*.doc,*.txt", the first drop target will accept all files, and the second one will accept only .doc and .txt files
dropped_file_path_string_idslist of string object identifiers types, separated by ';'emptyList of string objects than can receive the path of a file that was dropped, for each drop target defined by the drop_target_ids list
drop_contextstringemptyOptional string to define the deserialization context used for the drop operation
Exposed: v. 2.6drop_enabledbooleantrueEnable drop operations on the widget
Exposed Attributes And Events (read-only)
Exposed: v. 2.6mouse_overbooleanfalseSet to true when the mouse is over the active area of the widget
Exposed: v. 2.7mouse_downinteger0Bit field containing the state of mouse buttons: first bit is left button, second is right and third is mid button. When no button is pushed, the value of mouse_down is zeroExperimental
Exposed: v. 2.7mouse_position.xintegerHorizontal position of the mouse in the widget (relative to the upper left corner of the widget)The value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7mouse_position.yintegerVertical position of the mouse in the widget (relative to the upper left corner of the widget)The value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7mouse_screen_position.xintegerAbsolute horizontal position of the mouse on the screenThe value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7mouse_screen_position.yintegerAbsolute vertical position of the mouse on the screenThe value is valid only when the mouse is over the widget or being dragged out of it (experimental)
Exposed: v. 2.7focusbooleanfalseSet to true when the widget has keyboard focus and receives keyboard events
Exposed: v. 2.7key_pressedeventEvent fired when a key (filtered by the handled_key list) is pressedExperimental
Exposed: v. 2.7key_pressed.keyenumlast virtual key that was pressedExperimental: enum values are subject to change, check the displayed value (text)
Exposed: v. 2.7key_pressed.characterstringCharacter(s) corresponding to the last pressed key, if it was a character key (key_pressed.key=0)Experimental
Exposed: v. 2.7key_releasedeventEvent fired when a key (filtered by the handled_key list) is released
Exposed: v. 2.7key_released.keyenumlast virtual key that was releasedExperimental: enum values are subject to change, check the displayed value (text)
Exposed: v. 2.7key_released.characterstringCharacter(s) corresponding to the last released key, if it was a character key (key_released.key=0)Experimental
Exposed: v. 2.6draggingbooleanfalseSet to true when a dragging operation is in progress for this widget
Exposed: v. 2.6drag_operationbooleanenumerationtype of the current drag operation (None, Copy, Move)Experimental: enum values are subject to change
Exposed: v. 2.6droppingbooleanfalseSet to true when a dropping operation is in progress for this widget
Exposed: v. 2.6drop_operationbooleanenumerationtype of the current drop operation (None, Copy, Move)Experimental: enum values are subject to change
Inherited from cellRead about `cell`
Properties Relative to Parent Cell
Exposed: v. 1.5v_alignvertical alignmentcenterVertical alignment of the cell in its parent cell
Exposed: v. 1.5h_alignhorizontal alignmentcenterHorizontal alignment of the cell in its parent cell
Exposed: v. 1.9.1 (read only)h_positionposition in pixelsHorizontal position of the cell in its parent cellIf defined, it deactivates the h_align property. Use this attribute for horizontal pixel-positioning. The position is relative to the parent cell
Exposed: v. 1.9.1 (read only)v_positionposition in pixelsVertical position of the cell in its parent cellIf defined, it deactivates the v_align property. Use this attribute for vertical pixel-positioning. The position is relative to the parent cell
Exposed: v. 1.9.1h_offsetposition in pixels0horizontal offset of the cell from the position computed by the layout engineUsing this property lets you move a cell without changing the layout around it. The position is relative to the parent cell
Exposed: v. 1.9.1v_offsetposition in pixels0vertical offset of the cell from the position computed by the layout engineUsing this property lets you move a cell without changing the layout around it. The position is relative to the parent cell
Exposed: v. 1.5flexreal number0flexibility of the cellThis attribute is used when the parent cell is a row or a column and has free space to distribute to children cells (for example for a fixed size parent cell that is larger than the sum of its children cell sizes). The remaining space will be distributed among children cells according to the flex attribute value
Exposed: v. 1.5displaybooleantrueinclude/exclude the cell from the layoutWhen set to false, the content of the cell is not displayed (not visible) AND is not taken into account to compute the layout (the cell is ignored)
Cell Properties
Exposed: v. 1.5layout_type'row' or 'column' or 'layer_stack'columnSelects a layout type: row, column or layer_stackDetermines how the children cells will be disposed inside the cell: as a row, a column or a stack of layers (each cell on top of each other, the first cell in the background, and the last one on the foreground)
Exposed: v. 1.9.1 (pixels)widthnumber of pixels or percentage (1.1)Forced width of the cellIf not present, the width will be automatically computed from the children cells widths and layout rules
Exposed: v. 2.0min_widthnumber of pixelsminimum width allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not smaller than min_width pixels
Exposed: v. 2.0max_widthnumber of pixelsmaximum width allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not larger than max_width pixels
Exposed: v. 1.9.1 (pixels)heightnumber of pixels or percentage (1.1)Forced height of the cellIf not present, the height will be automatically computed from the children cells heights and layout rules
Exposed: v. 2.0min_heightnumber of pixelsminimum height allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not smaller than min_height pixels
Exposed: v. 2.0max_heightnumber of pixelsmaximum height allowed for the cellWhen set, the layout engine will ensure that the width of the cell is not larger than max_height pixels
marginnumber of pixels0margin of the cellMay be overridden by the h_margin or v_margin attributes
Exposed: v. 1.5h_marginnumber of pixels0Horizontal margin of the cell
Exposed: v. 1.5v_marginnumber of pixels0Vertical margin of the cell
Exposed: v. 1.5spacingnumber of pixels0Space between children cells
spacing_flexreal number0Flex value to allocate extra space between children cellsSee the flex attribute for more details
Exposed: v. 1.5internal_v_alignvertical alignmentcenterVertical alignment of children cells group inside the cellThis attribute is useful only if the cell has a fixed size, and the sum of the sizes of the layouted children cells is different from the cell size. In this case you may want to choose how you align the children cells group inside the parent cell. Used only for 'column' type cell, the horizontal alignment being set individually for each child cell
Exposed: v. 1.5internal_h_alignhorizontal alignmentcenterHorizontal alignment of children cells group inside the cellThis attribute is useful only if the cell has a fixed size, and the sum of the sizes of the layouted children cells is different from the cell size. In this case you may want to choose how you align the children cells group inside the parent cell. Used only for 'row' type cell, the vertical alignment being set individually for each child cell
Exposed: v. 2.0reflowbooleanfalsewhen set to true, the layout engine will treat chidren cell as reflowable elements. For a fixed height column, the width is computed accordingly, and for a fixed width row, the height is computed accordinglyvalid only for columns with fixed height or rows with fixed width
Exposed: v. 2.4flipbooleanfalsedisplay children cells in reverse order (right to left or bottom to top)currently valid only for COLUMN and ROW elements
Inheritable properties: these text properties are inherited by children cells (and can be overridden)
font_facestringemptyName of the font for text contained in the cell and sub cellsFonts are not the same on all systems, so you should carefuly select the fonts or ensure that users have specific fonts installed
font_sizenumber of pixels or percentage (1.2.2), with or without +/- sign (1.2.2)System default valueSize of the font for any text contained in the cellIf the value starts with + or -, the resulting font size is incremented by this value from the current font size. If the value ends with a %, the resulting font size is the corresponding proportion of the current font size. This value is inherited by children cells but can be overridden
font_size_mode"cell" or "character"cellDefines how font size is computed to select the right font.Default value is cell mode for backward compatibility reasons but it has been deprecated. It is however recommended to use "character" mode for more precise font size selection. Using the cell size to select the font is less precise and not compatible with standard font sizes expressed in character height.
font_weight'bold' or 'normal'System default valueWeight of the font for any text contained in the cellThe value is inherited by children cells but can be overridden
font_style'italic' or 'normal'System default valueStyle of the font for any text contained in the cellThe value is inherited by children cells but can be overridden
font_quality'default' or 'no_anti_alias' or 'anti_alias' or 'cleartype'System default valueQuality of the fontThe value is inherited by children cells but can be overridden
font_escapementreal number0Escapement (angle in degrees) of the fontThe value is inherited by children cells but can be overridden. If the escapement of the font is non null, the formating options of the text widgets won't apply
text_decoration'underline' or 'none'System default valueDecoration of the text for any text contained in the cellThe value is inherited by children cells but can be overridden
text_colorcolorSystem default valueColor of any text contained in the cellThe value is inherited by children cells but can be overridden
Common attributesRead about `common`
ididentifieremptyIdentifier of the elementThe id of an element has to be globally unique. Two elements cannot have the same identifier

Notes on using "sub-skins"

  1. Separate script space. Every subskin has its own scripting space. So if you have a function or an object/variable in the script of the main SKIN, it won't be available in the subskin. It also means that scripts in skin and subskin cannot communicate directly through script variables, only through the main skin's params and strings (exposed to both skin and sub-skin scripts).
  2. Subskin can import DEFINES, TEMPLATES, and VARIABLES that were defined in the parent skin before the KUIML_WIDGET element (by default it imports all of them, but you can disable importing of any type to speed up loading). VARIABLES set inside the main SKIN are accessible inside the subskin, though only those that were defined before that KUIML_WIDGET. Also if you change these VARIABLES inside "sub-skin" they won't update in the main SKIN (because the main skin is loaded and parsed before subskins).
  3. Subskins can communicate with the parent skin via params and strings defined in the main skin. Usually, these params should be explicitly mentioned in EXPOSED_OBJECTS (to be used in scripts) and REQUIRED_OBJECTS (to be not stripped and available inside the subskin). 

2020 © Plug'n Script and KUIML by Blue Cat Audio  |  Site by LetiMix