# Predefined Controls

This chapter is about how to use the predefined Controls that come with CGI Studio.   
The controls available in SceneComposer can be seen in the SceneComposer Toolbox View:

# Touchable

### ControlDevelopment

#### KeyboardKey

Keyboard key is building block of Keyboard Control.

<div drawio-diagram="5463"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710497341.png" alt=""/></div>

**Properties**

This Control does not have any configurable properties.

---

#### Scrollbar

The Scrollbar is used internally in List and ScrollView and shows up when the layout-size of those controls is smaller than its actual content. It can be used by custom scrollable controls.

**Properties**

<table border="1" class="align-center" id="bkmrk-property-name-type-d" style="border-collapse: collapse; width: 90%; height: 260.8px; border-width: 1px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody style="padding-left: 40px;"><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Property Name**  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Type**  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Description**  
</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="height: 29.4667px; border-width: 1px;">Scroll Direction  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">Enum (Vertical, Horizontal)</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">The direction in which the Scrollbar scrolls.</td></tr><tr style="height: 46.2667px; padding-left: 40px;"><td class="align-left" style="height: 46.2667px; border-width: 1px;">Handle Minimum Size  
</td><td class="align-left" style="height: 46.2667px; border-width: 1px;">Integer  
</td><td class="align-left" style="height: 46.2667px; border-width: 1px;">The minimum height (for vertical scrollbar) or minimum width (for horizontal scrollbar) of the handle in pixels.</td></tr><tr style="height: 63.0667px; padding-left: 40px;"><td class="align-left" style="height: 63.0667px; border-width: 1px;">Scrollbar Visibility  
</td><td class="align-left" style="height: 63.0667px; border-width: 1px;">Enum (Automatic, Collapsed, Visible)</td><td class="align-left" style="height: 63.0667px; border-width: 1px;">Configure the visibility of the scrollbar. By default it is set to Automatic which will determine the visibility based on the actual content.</td></tr><tr style="height: 46.2667px; padding-left: 40px;"><td class="align-left" style="height: 46.2667px; border-width: 1px;">Min Movement To Scrolling  
</td><td class="align-left" style="height: 46.2667px; border-width: 1px;">Integer  
</td><td class="align-left" style="height: 46.2667px; border-width: 1px;">Minimum distance a touch gesture needs to move to start scrolling.</td></tr><tr style="height: 46.2667px; padding-left: 40px;"><td class="align-left" style="height: 46.2667px; border-width: 1px;">Blend Type  
</td><td class="align-left" style="height: 46.2667px; border-width: 1px;">BlendType::Enum  
</td><td class="align-left" style="height: 46.2667px; border-width: 1px;">Sets the blend option.</td></tr></tbody></table>

**Functionality**

The Scrollbar emits a ScrollableEvent which can be forwarded to a Behavior (f.e. List Behavior, Scroll View Behavior) via the Event Bridge Behavior.

<div drawio-diagram="5464"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710497443.png" alt=""/></div>

<table border="1" class="align-center" id="bkmrk-behavior-name-type-p" style="border-collapse: collapse; width: 90%; height: 117.867px; border-width: 1px;"><colgroup><col style="width: 15.1977%;"></col><col style="width: 21.0049%;"></col><col style="width: 26.3281%;"></col><col style="width: 37.3045%;"></col></colgroup><tbody style="padding-left: 40px;"><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Behavior Name**  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Type**  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">**predefined/userdefined**  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Description**  
</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="height: 29.4667px; border-width: 1px;">Event Bridge  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">Control Behavior  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">predefined in List and ScrollView Control  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">Forwards the ScrollableEvent from the Scrollbar to a Behavior</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="height: 29.4667px; border-width: 1px;">List  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">Control ConstructionKit Behavior  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">predefined in List Control  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">Internally receives the ScrollableEvent from the Scrollbar.</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="height: 29.4667px; border-width: 1px;">Scroll View  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">Control ConstructionKit Behavior</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">predefined in ScrollView Control  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">Internally receives the ScrollableEvent from the Scrollbar.</td></tr></tbody></table>

---

#### PageIndicatorElement

A PageIndicatorElement is a Control that is part of the Page Indicator Control. The Page Indicator Control indicates the currently displayed page. PageIndicatorElement is intended to be used as component of Page Indicator and therefore is not focusable as individual element.

The Control offers the possibility to customize it’s appearance through 9 patch image and color properties.

<div drawio-diagram="5465"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710497487.png" alt=""/></div>

**Properties**

<table border="1" class="align-center" id="bkmrk-property-name-type-d-1" style="border-collapse: collapse; width: 90%; height: 176.8px; border-width: 1px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody style="padding-left: 40px;"><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Property Name**  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Type**  
</td><td class="align-left" style="height: 29.4667px; border-width: 1px;">**Description**  
</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="width: 27.9357%; border-width: 1px;">Selected Indicator Image</td><td class="align-left" style="width: 16.1893%; border-width: 1px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td class="align-left" style="width: 55.875%; border-width: 1px;">Image displayed when the control is in selected state.</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="width: 27.9357%; border-width: 1px;">Indicator Image</td><td class="align-left" style="width: 16.1893%; border-width: 1px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td class="align-left" style="width: 55.875%; border-width: 1px;">Image displayed when the control is in base deselected state.</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="width: 27.9357%; border-width: 1px;">Selected Indicator Pressed Image</td><td class="align-left" style="width: 16.1893%; border-width: 1px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td class="align-left" style="width: 55.875%; border-width: 1px;">Image displayed when the control is in selected state and pressed.</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="width: 27.9357%; border-width: 1px;">Indicator Pressed Image</td><td class="align-left" style="width: 16.1893%; border-width: 1px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td class="align-left" style="width: 55.875%; border-width: 1px;">Image displayed when the control is in deselected state and pressed.</td></tr><tr style="height: 29.4667px; padding-left: 40px;"><td class="align-left" style="width: 27.9357%; border-width: 1px;">Hovered Color</td><td class="align-left" style="width: 16.1893%; border-width: 1px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td class="align-left" style="width: 55.875%; border-width: 1px;">The color to blend with the current control image when the control is hovered.</td></tr><tr style="padding-left: 40px;"><td class="align-left" style="width: 27.9357%; border-width: 1px;">Disabled Color</td><td class="align-left" style="width: 16.1893%; border-width: 1px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td class="align-left" style="width: 55.875%; border-width: 1px;">The color to blend with the current control image when the control is disabled.</td></tr></tbody></table>

---

### Button

The Button Control offers an easy way to define all different states of a button and an action that is performed when clicking it.

The visual appearance can be configured with three images depending on the button's state and a hovered color that can be defined including an alpha value.

Additionally the Button offers an Anchor to attach content. Therefore you can also set the padding of the Button and its content.

<div drawio-diagram="5460"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710494445.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-2" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td style="width: 13.7206%;">Enabled  
</td><td style="width: 29.9116%;">bool  
</td><td style="width: 56.3677%;">If true, the control is enabled. Otherwise the visual representation of the control will be changed to the disabled colors. Also disable the focus to avoid receiving input.</td></tr><tr><td style="width: 13.7206%;">Focusable</td><td style="width: 29.9116%;">bool</td><td style="width: 56.3677%;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 29.4667px;"><td style="width: 13.7206%;">Normal Image</td><td style="width: 29.9116%;">9 Patch Image</td><td style="width: 56.3677%;">The image which is used as Button Image for the color multiplication of other states like Hovered.</td></tr><tr style="height: 29.4667px;"><td style="width: 13.7206%;">Pressed Image</td><td style="width: 29.9116%;">9 Patch Image</td><td style="width: 56.3677%;">The image which is used as Button Image if the pressed state applies.</td></tr><tr style="height: 29.4667px;"><td style="width: 13.7206%;">Focused Image</td><td style="width: 29.9116%;">9 Patch Image</td><td style="width: 56.3677%;">Transparent image contained in the center (border) of the control which is activated if the control has the current focus. The control must be set as focusable. Note that the focused image will always be contained in the top layer of the control.</td></tr><tr style="height: 29.4667px;"><td style="width: 13.7206%;">Hovered Color Property Reference</td><td style="width: 29.9116%;">Enum (Self, Other)</td><td style="width: 56.3677%;">Choose how the property gets set. Via own property or from another Behavior.</td></tr><tr><td style="width: 13.7206%;">Hovered Color</td><td style="width: 29.9116%;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="width: 56.3677%;">The color which is used as hovered color for blending with the Button Image.

This property is only available if Hovered Color Property Reference is configured for "Self".

</td></tr><tr><td style="width: 13.7206%;">Hovered Color Property Provider  
</td><td style="width: 29.9116%;">[Candera::Behavior](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_behavior.html "Behaviors are small re-usable functional blocks that communicate via events. Behaviors are based on W...")</td><td style="width: 56.3677%;">Property Behavior which contains the color which has to be set on the effect.

This property is only available if Hovered Color Property Reference is configured for "Other".

</td></tr><tr><td style="width: 13.7206%;">Disabled Color Property Reference  
</td><td style="width: 29.9116%;">Enum (Self, Other)</td><td style="width: 56.3677%;">Choose how the property gets set.Via own property or from another Behavior.  
</td></tr><tr><td style="width: 13.7206%;">Disabled Color</td><td style="width: 29.9116%;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="width: 56.3677%;">The color to set on the disabled Button.

This property is only available if Disabled Color Property Reference is configured for "Self".

</td></tr><tr style="height: 29.4667px;"><td style="width: 13.7206%;">Disabled Color Property Provider  
</td><td style="width: 29.9116%;">[Candera::Behavior](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_behavior.html "Behaviors are small re-usable functional blocks that communicate via events. Behaviors are based on W...")</td><td style="width: 56.3677%;">Property Behavior which contains the color which has to be set on the effect.

This property is only available if Disabled Color Property Reference is configured for "Other".

</td></tr><tr><td style="width: 13.7206%;">Padding</td><td style="width: 29.9116%;">[Candera::Margin](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_margin.html "A non-zero margin applies space outside the element layout's width and height. The values can be set ...")</td><td style="width: 56.3677%;">Padding of the Button. Used when a content is attached.</td></tr><tr><td style="width: 13.7206%;">Blend Type</td><td style="width: 29.9116%;">BlendType::Enum</td><td style="width: 56.3677%;">Sets the blend option.</td></tr></tbody></table>

**Functionality**

The functionality of the button can be edited in the Behaviors panel or in the EventHandler Tab (see chapter <span style="color: rgb(230, 126, 35);">[EventHandler Tab](https://doc316en.candera.eu/link/569#bkmrk-page-title)</span>). An EventHandler that checks for Clicks will perform the user defined action.

<div drawio-diagram="5466"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710499021.png" alt=""/></div>

<table border="1" id="bkmrk-behavior-name-type-p-1" style="border-collapse: collapse; width: 100%; height: 153.067px;"><colgroup><col style="width: 16.0626%;"></col><col style="width: 21.6227%;"></col><col style="width: 21.3745%;"></col><col style="width: 40.899%;"></col></colgroup><tbody><tr style="height: 14.2667px;"><td style="height: 14.2667px;">**Behavior Name**  
</td><td style="height: 14.2667px;">**Type**  
</td><td style="height: 14.2667px;">**predefined/userdefined**  
</td><td style="height: 14.2667px;">**Description**  
</td></tr><tr style="height: 63.0667px;"><td style="width: 12.7318%; height: 63.0667px;">EventHandler</td><td style="width: 21.2605%; height: 63.0667px;">Control Behavior</td><td style="width: 12.4849%; height: 63.0667px;">predefined</td><td style="width: 53.5229%; height: 63.0667px;">Checks a defined condition and invokes a defined action behavior if that condition is true.

</td></tr><tr style="height: 29.4667px;"><td style="width: 12.7318%; height: 29.4667px;">CheckClick</td><td style="width: 21.2605%; height: 29.4667px;">Input Condition Behavior</td><td style="width: 12.4849%; height: 29.4667px;">predefined</td><td style="width: 53.5229%; height: 29.4667px;">Condition checks if the button has been clicked</td></tr><tr style="height: 46.2667px;"><td style="width: 12.7318%; height: 46.2667px;">Action</td><td style="width: 21.2605%; height: 46.2667px;">Action Behavior</td><td style="width: 12.4849%; height: 46.2667px;">userdefined</td><td style="width: 53.5229%; height: 46.2667px;">Userdefined action that will be performed when the button is clicked.</td></tr></tbody></table>

---

#### CoverFlow

A CoverFlow is a proof-of-concept control that allows for horizontal swiping of child items. The items are scaled according to their location.

Child items are placed in provided anchor. It is possible to add padding by placing blank items at the beginning and at the end of the anchor content.

By default, the CoverFlow works horizontally.

<div drawio-diagram="5467"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710501427.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Value</td><td>Float/Variant</td><td>Current value (position) of the CoverFlow.</td></tr><tr><td>Minimum</td><td>Float/Variant</td><td>The minimum value of CoverFlow.</td></tr><tr style="height: 29.4667px;"><td>Maximum</td><td>Float/Variant</td><td>The maximum value of CoverFlow.</td></tr><tr><td>Zoom Minimum  
</td><td>Float/Variant  
</td><td>Zoom effect minimum value.  
</td></tr><tr><td>Zoom Maximum  
</td><td>Float/Variant</td><td>Zoom effect maximum value.  
</td></tr><tr><td>Zoom By Layout</td><td>bool</td><td>Wethere zoom accomplished by layout size.</td></tr><tr><td>Increase Swipe Direction  
</td><td>Enum (Left, Right, Up, Down)  
</td><td>The direction of the swipe to increase value  
</td></tr><tr><td>Decrease Swipe Direction  
</td><td>Enum (Left, Right, Up, Down)  
</td><td>The direction of the swipe to decrease value  
</td></tr><tr><td>Orientation</td><td>StackLayouter::Arrangement</td><td>Selects arrangement for cover flow. See <span style="color: rgb(230, 126, 35);">[Set Layout](https://doc316en.candera.eu/link/598#bkmrk-set-layout)</span> for more information.</td></tr><tr style="height: 29.4667px;"><td>Blend Type</td><td style="width: 29.9116%;">BlendType::Enum</td><td style="width: 56.3677%;">Sets the blend option.</td></tr></tbody></table>

---

#### Dial

A dial is used to set a value within a specified range or to select between different options which are represented by the value of the dial. The control knob changes the value when the user touches and turns it. The degree of rotation corresponds to the desired value change. The dial snaps into its predefined positions defined by its step size.

The below figure shows an example using a 3-step rotation, with a Minimum Rotation of -45 degrees, Maximum Rotation of +45 degrees, and Step Size of 45 degrees. In this example, BackgroundImages 0 is displayed corresponding to Current Value = 0. Similarly, Current Value = 1 displays BackgroundImages 1 and Current Value = 2 displays BackgroundImages 2.

For a 5-step rotation with a Minimum Rotation of -90 degrees, Maximum Rotation of +90 degrees, and Step Size of 45 degrees, you will need to set 5 BackgroundImages.

The rotary knob supports events. If it receives an event of value change (ValueChangeEvent), the knob will be set accordingly. When the control is focused it is possible to control it using the keyboard (up/down arrow).

<div drawio-diagram="5468"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710503300.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-4" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Enabled</td><td>bool</td><td>If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td>Focusable</td><td>bool</td><td>If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Current Value  
</td><td>FeatStd::Int32</td><td>Current value for the dial.  
</td></tr><tr><td>Step Size  
</td><td>FeatStd::Float</td><td>Step size in degrees.  
</td></tr><tr><td>Minimum Rotation  
</td><td>FeatStd::Float</td><td>Minimum rotation of the dial.  
</td></tr><tr><td>Maximum Rotation  
</td><td>FeatStd::Float</td><td>Maximum rotation of the dial.  
</td></tr><tr><td>Knob Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.  
</td></tr><tr><td>BackgroundImages  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>A list of images which should be available for selection.</td></tr><tr><td>Focus Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.  
</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which can be used from other Behaviors.  
</td></tr><tr><td>Hovered Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which can be used from other Behaviors.  
</td></tr><tr><td>Increment Key Code  
</td><td>Candera::KeyboardKeyCode::Enum</td><td>Check the KeyCode of the pressed key (can also be modifier).  
</td></tr><tr><td>Decrement Key Code  
</td><td>Candera::KeyboardKeyCode::Enum</td><td>Check the KeyCode of the pressed key (can also be modifier).  
</td></tr><tr><td>Blend Type  
</td><td style="width: 29.9116%;">BlendType::Enum</td><td style="width: 56.3677%;">The blend type that will be set on the affected node.  
</td></tr></tbody></table>

---

#### Drawer

The Drawer Control provides a retractable area controlled via events. It offers an Anchor, where any kind of nodes can be attached to.

If the Drawer receives a Drawer Event, the Control will open or close itself. The "Change Drawer State" action allows to send these events and also provide the functionality to toggle the state of the Drawer Control.

When the "Drag Enabled" Property is set to true, then the Drawer can also be opened/closed by dragging the Knob.

All nodes that are attached to the Anchor will be displayed in the same way as they would be displayed when attached to an Overlay Layouter.

The image below shows a Drawer Control with "Appear Direction" left in initial state and in closed state. When the drawer gets closed, it slides to the left and gets hidden like closing a desk drawer.

<div drawio-diagram="5472"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710506222.png" alt=""/></div>

<p class="callout info">Nine-Patch-Images are not supported by Drawer Image properties (Knob Pressed Image, Knob Normal Image).</p>

Properties

<table border="1" id="bkmrk-property-name-type-d-5" style="border-collapse: collapse; width: 100%; height: 273.467px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 46.2667px;"><td style="width: 18.665%; height: 46.2667px;">Open</td><td style="width: 29.2907%; height: 46.2667px;">bool</td><td style="width: 52.0443%; height: 46.2667px;">If true, the control is shown in it's opened state. Otherwise the visual representation of the control will be it's closed state.</td></tr><tr style="height: 29.4667px;"><td style="width: 18.665%; height: 29.4667px;">Appear Direction</td><td style="width: 29.2907%; height: 29.4667px;">Enum (Left, Right, Top, Bottom)  
</td><td style="width: 52.0443%; height: 29.4667px;">Specifies the direction from which the content will appear.</td></tr><tr style="height: 46.2667px;"><td style="width: 18.665%; height: 46.2667px;">Knob Pressed Image</td><td style="width: 29.2907%; height: 46.2667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 52.0443%; height: 46.2667px;">Specifies the look of the dragable Knob when it is pressed. Note: Should have the same or a bigger size than the Normal Image.</td></tr><tr style="height: 63.0667px;"><td style="width: 18.665%; height: 63.0667px;">Knob Normal Image</td><td style="width: 29.2907%; height: 63.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 52.0443%; height: 63.0667px;">Specifies the look of the dragable Knob when it is not pressed. Note: Should have the same or a smaller size than the Pressed Image.</td></tr><tr style="height: 29.4667px;"><td style="width: 18.665%; height: 29.4667px;">Drag Enabled</td><td style="width: 29.2907%; height: 29.4667px;">bool</td><td style="width: 52.0443%; height: 29.4667px;">If true, then the dragable Knob is active and visible.</td></tr><tr style="height: 29.4667px;"><td style="width: 18.665%; height: 29.4667px;">Blend Type</td><td style="width: 29.2907%; height: 29.4667px;">BlendType::Enum</td><td style="width: 52.0443%; height: 29.4667px;">Sets the blend option.</td></tr></tbody></table>

---

#### IconButton

IconButton has similar functionality as the standard button, but in addition an icon (image) (defined via multiple properties per control state) is placed on top of the button.

<div drawio-diagram="5473"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710511942.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-6" style="border-collapse: collapse; width: 100%; height: 681.601px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Identifier  
</td><td style="width: 30.2854%; height: 29.4667px;">String  
</td><td style="width: 48.3302%; height: 29.4667px;">Identifier which is used when emitting an Event (e.g. Click Event).  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Enabled  
</td><td style="width: 30.2854%; height: 29.4667px;">bool  
</td><td style="width: 48.3302%; height: 29.4667px;">If set to false, it will not react on focus events and does not have to support different visualizations for the different states.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Focusable  
</td><td style="width: 30.2854%; height: 29.4667px;">bool  
</td><td style="width: 48.3302%; height: 29.4667px;">If true, the control is focusable. Otherwise the control can not be focused.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Normal Image</td><td style="width: 30.2854%; height: 29.4667px;">9 patch image</td><td style="width: 48.3302%; height: 29.4667px;">The Image which is used if the normal state applies.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Pressed Image</td><td style="width: 30.2854%; height: 29.4667px;">9 patch image</td><td style="width: 48.3302%; height: 29.4667px;">The Image which is used if the pressed state applies.</td></tr><tr style="height: 63.0667px;"><td style="width: 21.3844%; height: 63.0667px;">Focused Image</td><td style="width: 30.2854%; height: 63.0667px;">9 patch image</td><td style="width: 48.3302%; height: 63.0667px;">Image which is transparent in the center (border). It gets activated if the control has the current focus. Therefore be sure that the Button is focusable.  
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.3844%; height: 46.2667px;">Hovered Color</td><td style="width: 30.2854%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 48.3302%; height: 46.2667px;">The color which is used as hovered color for blending with the Button Image.  
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.3844%; height: 46.2667px;">Disabled Color</td><td style="width: 30.2854%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 48.3302%; height: 46.2667px;">The color which is used for blending with the disabled Button Image.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Padding  
</td><td style="width: 30.2854%; height: 29.4667px;">[Candera::Margin](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_margin.html "A non-zero margin applies space outside the element layout's width and height. The values can be set ...")</td><td style="width: 48.3302%; height: 29.4667px;">Padding of the button. Used when a content is attached.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Icon Horizontal Alignment</td><td style="width: 30.2854%; height: 29.4667px;">Enum (Left, Center, Right)</td><td style="width: 48.3302%; height: 29.4667px;">The horizontal alignment of the icon.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Icon Vertical Alignment</td><td style="width: 30.2854%; height: 29.4667px;">Enum (Top, Center, Bottom)</td><td style="width: 48.3302%; height: 29.4667px;">The vertical alignment of the icon.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.3844%; height: 46.2667px;">Icon Normal Image</td><td style="width: 30.2854%; height: 46.2667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 48.3302%; height: 46.2667px;">The image which is used as Icon on the button if not pressed or hovered.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.3844%; height: 46.2667px;">Icon Pressed Image</td><td style="width: 30.2854%; height: 46.2667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 48.3302%; height: 46.2667px;">The image which is used as Icon on the button if the pressed state applies.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.3844%; height: 29.4667px;">Icon Focused Image  
</td><td style="width: 30.2854%; height: 29.4667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 48.3302%; height: 29.4667px;">The image to set on the effect.  
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.3844%; height: 46.2667px;">Icon Hovered Color  
</td><td style="width: 30.2854%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 48.3302%; height: 46.2667px;">The color which is used as hovered color for blending with the button Icon image.  
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.3844%; height: 46.2667px;">Icon Disabled Color  
</td><td style="width: 30.2854%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 48.3302%; height: 46.2667px;">The color which is used for blending with the disabled button Icon Image.  
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.3844%; height: 46.2667px;">Blend Type</td><td style="width: 30.2854%; height: 46.2667px;">BlendType::Enum</td><td style="width: 48.3302%; height: 46.2667px;">Sets the blend option.</td></tr></tbody></table>

---

#### InputField

The InputField contains an editable text. If the Control has the keyboard focus it can be modified by receiving “Key Events”. This events can e.g. be sent from a “Virtual Key Behavior”. Additionally the InputField contains a caret which can be shifted by “Key Events” (KeyCode: Key\_LeftArrow or Key\_RightArrow). Furthermore the InputField sends “Enter Exit" Events in case of losing the focus. This events can be checked by an Event Handler with the “Check Enter Or Exit Behavior” e.g. to activate a virtual keyboard. As other Controls it contains a value (string) which can be forwarded. Therefore just use the “Forward Value” Behavior and set another Control as Target Node.

<p class="callout info">The default text and the placeholder text have got additional properties for customizing them visually.</p>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-7" style="border-collapse: collapse; width: 100%; height: 791.201px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 63.0667px;"><td style="width: 21.2608%; height: 63.0667px;">Enabled</td><td style="width: 29.4201%; height: 63.0667px;">bool</td><td style="width: 49.3191%; height: 63.0667px;">If true, the control is enabled. Otherwise the visual representation of the control will be changed to the disabled colors. Also disable the focus to avoid receiving input.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.2608%; height: 46.2667px;">Focusable</td><td style="width: 29.4201%; height: 46.2667px;">bool</td><td style="width: 49.3191%; height: 46.2667px;">If true, the control is focusable. Otherwise the control can not be focused and will not receive any inputs.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">DefaultText</td><td style="width: 29.4201%; height: 29.4667px;">String</td><td style="width: 49.3191%; height: 29.4667px;">Text which will be set as default text.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Text Color  
</td><td style="width: 29.4201%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.3191%; height: 29.4667px;">The color set on the text.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Text Style  
</td><td style="width: 29.4201%; height: 29.4667px;">Text Style  
</td><td style="width: 49.3191%; height: 29.4667px;">The Style that will be set to the Text Node.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Text Disabled Color  
</td><td style="width: 29.4201%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)  
</td><td style="width: 49.3191%; height: 29.4667px;">The color to set on the text if the control is disabled.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Placeholder Text</td><td style="width: 29.4201%; height: 29.4667px;">String</td><td style="width: 49.3191%; height: 29.4667px;">The Text that will be set to the Text Node.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Placeholder Text Color  
</td><td style="width: 29.4201%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.3191%; height: 29.4667px;">The color of the placeholder text.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Placeholder Text Style  
</td><td style="width: 29.4201%; height: 29.4667px;">Text Style  
</td><td style="width: 49.3191%; height: 29.4667px;">The Style that will be used.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Placeholder Disabled Color  
</td><td style="width: 29.4201%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)  
</td><td style="width: 49.3191%; height: 29.4667px;">The color to set on the effect of the Text.  
</td></tr><tr style="height: 35.0667px;"><td style="width: 21.2608%; height: 35.0667px;">Caret Image</td><td style="width: 29.4201%; height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 49.3191%; height: 35.0667px;">The image to set as caret.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Off Time Ms</td><td style="width: 29.4201%; height: 29.4667px;">Integer</td><td style="width: 49.3191%; height: 29.4667px;">Milliseconds before switching the blinking caret to On state.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">On Time Ms</td><td style="width: 29.4201%; height: 29.4667px;">Integer</td><td style="width: 49.3191%; height: 29.4667px;">Milliseconds before switching the blinking caret to Off state.</td></tr><tr style="height: 35.0667px;"><td style="width: 21.2608%; height: 35.0667px;">Background Image</td><td style="width: 29.4201%; height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 49.3191%; height: 35.0667px;">The image to set as Background.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">BG Disabled Color</td><td style="width: 29.4201%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.3191%; height: 29.4667px;">The color to set on the BG if the control is disabled.</td></tr><tr style="height: 35.0667px;"><td style="width: 21.2608%; height: 35.0667px;">Focused Image</td><td style="width: 29.4201%; height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 49.3191%; height: 35.0667px;">The image to set as FocusBorder.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Set Value On Enter  
</td><td style="width: 29.4201%; height: 29.4667px;">bool  
</td><td style="width: 49.3191%; height: 29.4667px;">If true, the value will be set when the Enter key is pressed.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Set Value On Each Change</td><td style="width: 29.4201%; height: 29.4667px;">bool</td><td style="width: 49.3191%; height: 29.4667px;">If true, the value will be set on each input.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Max Text Length</td><td style="width: 29.4201%; height: 29.4667px;">Integer</td><td style="width: 49.3191%; height: 29.4667px;">Maximum count of characters.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Just Digits</td><td style="width: 29.4201%; height: 29.4667px;">bool</td><td style="width: 49.3191%; height: 29.4667px;">If true, the InputField will receive just digits.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.2608%; height: 46.2667px;">Blend Type</td><td style="width: 29.4201%; height: 46.2667px;">BlendType::Enum</td><td style="width: 49.3191%; height: 46.2667px;">The blend type that will be set on the affected nodes.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Keyboard Node  
</td><td style="width: 29.4201%; height: 29.4667px;">Node  
</td><td style="width: 49.3191%; height: 29.4667px;">Keyboard node.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Keyboard Layout Name  
</td><td style="width: 29.4201%; height: 29.4667px;">String  
</td><td style="width: 49.3191%; height: 29.4667px;">Layout name.  
</td></tr></tbody></table>

---

#### Keyboard

The Keyboard Control emulates physical computer keyboard that enables a user to enter characters into an InputField Control. The Keyboard Control is highly customizable via Configuration Script described below.

To use the Control one needs to connect an InputField with a keyboard via KeyboardAction with Action Open. When the InputField send the event, the Keyboard appears and sends pressed characters to the InputField that activates it.

<div drawio-diagram="5474"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710515183.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-8" style="border-collapse: collapse; width: 100%; height: 715.068px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 28.2935%;"></col><col style="width: 46.7065%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 166.667px;"><td style="width: 21.2608%; height: 166.667px;">Configuration Script</td><td style="width: 29.4201%; height: 166.667px;">String</td><td style="width: 49.3191%; height: 166.667px;">Keyboard layout configuration script - key definitions (strings, KeyboardCodes or KeyboardActions) separated by spaces and newlines; may have parameters in parentheses and width specifiers in square brackets. See documentation and examples for reference.

See <span style="color: rgb(230, 126, 35);">[Keyboard Behavior](https://doc316en.candera.eu/link/598#bkmrk-keyboard-behavior)</span> for more information.

</td></tr><tr style="height: 163.867px;"><td style="width: 21.2608%; height: 163.867px;">State Machine Node  
</td><td style="width: 29.4201%; height: 163.867px;">Node  
</td><td style="width: 49.3191%; height: 163.867px;">Node containing State Machine Behavior, that will be sent a ValueChanged event with layout name, when layout switching occurs. In turn, State Machine may send SetConfiguration KeyboardAction to the Keyboard, to set new Keyboard layout configuration string. If left empty, layout changes will trigger ValueChanged on Keyboard node itself - in this case layout configuration string may be updated using Value change conditions attached to Keyboard node.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Navigate Up Key Code  
</td><td style="width: 29.4201%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 29.4667px;">Key used for navigating up</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Navigate Down Key Code  
</td><td style="width: 29.4201%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 29.4667px;">Key used for navigating down</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Navigate Next Key Code  
</td><td style="width: 29.4201%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 29.4667px;">Key used for navigating right</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Navigate Previous Key Code  
</td><td style="width: 29.4201%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 29.4667px;">Key used for navigating left</td></tr><tr style="height: 46.2667px;"><td style="width: 21.2608%; height: 46.2667px;">Navigate Start On Down Key  
</td><td style="width: 29.4201%; height: 46.2667px;">bool  
</td><td style="width: 49.3191%; height: 46.2667px;">Enter navigation mode when pressing down key for the first time</td></tr><tr style="height: 46.2667px;"><td style="width: 21.2608%; height: 46.2667px;">Navigate End On Up Key  
</td><td style="width: 29.4201%; height: 46.2667px;">bool  
</td><td style="width: 49.3191%; height: 46.2667px;">Exit navigation mode when pressing up key on the first row</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Navigate Start Key Code  
</td><td style="width: 29.4201%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 29.4667px;">Key used for entering navigation mode</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Navigate End Key Code  
</td><td style="width: 29.4201%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 29.4667px;">Key used for exiting navigation mode</td></tr><tr style="height: 29.4667px;"><td style="width: 21.2608%; height: 29.4667px;">Navigate Close Key Code  
</td><td style="width: 29.4201%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 29.4667px;">Key used for closing keyboard</td></tr><tr style="height: 10px;"><td style="width: 21.2608%; height: 10px;">Navigate Invoke Key Code  
</td><td style="width: 29.4201%; height: 10px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.3191%; height: 10px;">Key used for invoking key action</td></tr><tr style="height: 46.2667px;"><td style="width: 21.2608%; height: 46.2667px;">Blend Type  
</td><td style="width: 29.4201%; height: 46.2667px;">BlendType::Enum</td><td style="width: 49.3191%; height: 46.2667px;">The blend type that will be set.  
</td></tr></tbody></table>

---

#### MenuItem

A MenuItem is a basic building block of MenuScreens. It can represent for example an application or a deeper level in a menu hierarchy. It consists of an icon for graphical representation and a label for textual description.

A proper usage is to place or create it inside a MenuScreen control because of internal events that communicate with it. Those events handle runtime repositioning an instance of MenuItem or deleting it from a MenuScreen.

<div drawio-diagram="5475"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710517153.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-9" style="border-collapse: collapse; width: 100%; height: 460.267px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 10px;"><td style="width: 24.2274%; height: 10px;">Enabled</td><td style="width: 21.1386%; height: 10px;">bool</td><td style="width: 54.634%; height: 10px;">If true, then item is visible  
</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Focus Image On Selection</td><td style="width: 21.1386%; height: 29.4667px;">9-patch image</td><td style="width: 54.634%; height: 29.4667px;">The border image is set while the MenuItem is selected</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Focus Image On Dragging</td><td style="width: 21.1386%; height: 29.4667px;">9-patch image</td><td style="width: 54.634%; height: 29.4667px;">The border image is set while the MenuItem is in edit mode</td></tr><tr style="height: 46.2667px;"><td style="width: 24.2274%; height: 46.2667px;">Delete Button Normal Image</td><td style="width: 21.1386%; height: 46.2667px;">9-patch image</td><td style="width: 54.634%; height: 46.2667px;">The image will be shown in top-right of the Control in edit mode to enable deletion of the instance of MenuItem</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Delete Button Pressed Image</td><td style="width: 21.1386%; height: 29.4667px;">9-patch image</td><td style="width: 54.634%; height: 29.4667px;">The image will be set while Delete Button is pressed</td></tr><tr style="height: 46.2667px;"><td style="width: 24.2274%; height: 46.2667px;">Delete Button Hovered Color</td><td style="width: 21.1386%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 54.634%; height: 46.2667px;">The color will be blend with Delete Button images while a user has his cursor over the Delete Button</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Focusable  
</td><td style="width: 21.1386%; height: 29.4667px;">bool  
</td><td style="width: 54.634%; height: 29.4667px;">If true then focus node will be visible  
</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Image</td><td style="width: 21.1386%; height: 29.4667px;">9-patch image</td><td style="width: 54.634%; height: 29.4667px;">A bitmap that is the icon of the Control</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Label</td><td style="width: 21.1386%; height: 29.4667px;">String</td><td style="width: 54.634%; height: 29.4667px;">A text that will be set to the Text Node.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Label Color</td><td style="width: 21.1386%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)  
</td><td style="height: 29.4667px;">A color of the Icon Label.</td></tr><tr style="height: 29.4667px;"><td style="width: 24.2274%; height: 29.4667px;">Label Style</td><td style="width: 21.1386%; height: 29.4667px;">Text Style</td><td style="width: 54.634%; height: 29.4667px;">A font style of the Text.</td></tr><tr style="height: 46.2667px;"><td style="width: 24.2274%; height: 46.2667px;">Label Trimming</td><td style="width: 21.1386%; height: 46.2667px;">Enum (None, Ellipsis, Custom Text)  
</td><td style="width: 54.634%; height: 46.2667px;">Trimming defines the behavior to employ when content overflows the content area  
</td></tr><tr style="height: 46.2667px;"><td style="width: 24.2274%; height: 46.2667px;">Blend Type</td><td style="width: 29.4201%; height: 46.2667px;">BlendType::Enum</td><td style="width: 49.3191%; height: 46.2667px;">The blend type that will be set.  
</td></tr></tbody></table>

---

#### Menu Screen

The Menu Screen Control represents a menu in the form of a grid of icons (instances of the Menu Item Control).

It has configurable number of rows and columns as well as default and maximum number of screens. A user can swipe between neighboring screens. The Control handles user input and forwards proper information to children MenuItem nodes. The children nodes may be removed and reordered at run time.

<div drawio-diagram="5476"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710518695.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-10" style="border-collapse: collapse; width: 100%; height: 813.401px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="width: 29.1718%; height: 29.4667px;">ActiveScreenIndex</td><td style="width: 33.6228%; height: 29.4667px;">FeatStd::UInt32</td><td style="width: 37.2054%; height: 29.4667px;">Index (starting at 0) of the current visible screen.</td></tr><tr style="height: 29.4667px;"><td style="width: 29.1718%; height: 29.4667px;">NumberOfScreens</td><td style="width: 33.6228%; height: 29.4667px;">FeatStd::UInt32</td><td style="width: 37.2054%; height: 29.4667px;">Default number of screens (can be changed in runtime)</td></tr><tr style="height: 29.4667px;"><td style="width: 29.1718%; height: 29.4667px;">Rows</td><td style="width: 33.6228%; height: 29.4667px;">FeatStd::UInt32</td><td style="width: 37.2054%; height: 29.4667px;">Number of rows of a grid in a single screen</td></tr><tr style="height: 29.4667px;"><td style="width: 29.1718%; height: 29.4667px;">Columns</td><td style="width: 33.6228%; height: 29.4667px;">FeatStd::UInt32</td><td style="width: 37.2054%; height: 29.4667px;">Number of columns of a grid in a single screen</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Items</td><td style="width: 33.6228%; height: 46.2667px;">Binding Source</td><td style="width: 37.2054%; height: 46.2667px;">Binding to a list containing icons and labels that should be accessible in the MenuScreen</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Swap Item Animation Easing Function</td><td style="width: 33.6228%; height: 46.2667px;">EasingFunctions::Enum</td><td style="width: 37.2054%; height: 46.2667px;">Interpolation method for animations of swapping items</td></tr><tr style="height: 29.4667px;"><td style="width: 29.1718%; height: 29.4667px;">Swap Item Animation Length</td><td style="width: 33.6228%; height: 29.4667px;">FeatStd::Float</td><td style="width: 37.2054%; height: 29.4667px;">Length of the swapping animation</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Change Screen Animation Easing Function</td><td style="width: 33.6228%; height: 46.2667px;">EasingFunctions::Enum</td><td style="width: 37.2054%; height: 46.2667px;">Interpolation method for animations of changing screens</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Change Screen Animation Length</td><td style="width: 33.6228%; height: 46.2667px;">FeatStd::Float</td><td style="width: 37.2054%; height: 46.2667px;">Length of the changing animation</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Key Code To Move Selection Left</td><td style="width: 33.6228%; height: 46.2667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 37.2054%; height: 46.2667px;">Key that changes focus from an item to its left neighbor</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Key Code To Move Selection Right</td><td style="width: 33.6228%; height: 46.2667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 37.2054%; height: 46.2667px;">Key that changes focus from an item to its right neighbor</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Key Code To Move Selection Up</td><td style="width: 33.6228%; height: 46.2667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 37.2054%; height: 46.2667px;">Key that changes focus from an item to its top neighbor</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Key Code To Move Selection Down</td><td style="width: 33.6228%; height: 46.2667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 37.2054%; height: 46.2667px;">Key that changes focus from an item to its bottom neighbor</td></tr><tr style="height: 29.4667px;"><td style="width: 29.1718%; height: 29.4667px;">Focusable</td><td style="width: 33.6228%; height: 29.4667px;">bool</td><td style="width: 37.2054%; height: 29.4667px;">Enables grabbing focus by the Control</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Screen Change Timeout</td><td style="width: 33.6228%; height: 46.2667px;">FeatStd::Float</td><td style="width: 37.2054%; height: 46.2667px;">Time of dragging a Menu Item outside the Control to fire Change Screen</td></tr><tr style="height: 37.8667px;"><td style="width: 29.1718%; height: 37.8667px;">Background Image</td><td style="width: 33.6228%; height: 37.8667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 37.2054%; height: 37.8667px;">Background image of screens</td></tr><tr style="height: 49.0667px;"><td style="width: 29.1718%; height: 49.0667px;">Focus Border Image</td><td style="width: 33.6228%; height: 49.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 37.2054%; height: 49.0667px;">Image of the border rendered when the Control grabs focus</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Limit Of Screens</td><td style="width: 33.6228%; height: 46.2667px;">FeatStd::UInt32</td><td style="width: 37.2054%; height: 46.2667px;">Maximum number of screens that may be handled by the Control in runtime</td></tr><tr style="height: 46.2667px;"><td style="width: 29.1718%; height: 46.2667px;">Page Indicator Node</td><td style="width: 33.6228%; height: 46.2667px;">Node</td><td style="width: 37.2054%; height: 46.2667px;">Page indicator that helps in navigation between screens of the Control</td></tr><tr style="height: 11.2667px;"><td style="width: 24.2274%; height: 11.2667px;">Blend Type</td><td style="width: 29.4201%; height: 11.2667px;">BlendType::Enum</td><td style="width: 49.3191%; height: 11.2667px;">The blend type that will be set.  
</td></tr></tbody></table>

---

#### PageIndicator

A Page Indicator is a control that indicates currently visible page of set and provides method to switch to another page directly by click or if focused in a stepping manner using rotary action input.

The control interacts with MenuScreens through exchange of ValueChange and ChangeValue events. The cooperating control is set in *Target Node* property.

The action keys will move the focus in/out of the control and when in then will switch pages until first or last page is reached. Continued action will pass the focus out of the control.

By default the control supports up to 8 pages, support for more pages requires manual addition of additional PageIndicatorElements in the control.

<div drawio-diagram="5477"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710519138.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-11" style="border-collapse: collapse; width: 100%; height: 813.401px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="width: 18.7886%;">Target Node</td><td style="width: 30.4097%;">Node</td><td style="width: 50.8016%;">A node to exchanging events.</td></tr><tr><td style="width: 18.7886%;">Active Page Index</td><td style="width: 30.4097%;">FeatStd::UInt32</td><td style="width: 50.8016%;">Index of currently visible page. Must be in range from 0 to `Number Of Pages - 1` .</td></tr><tr><td style="width: 18.7886%;">Number Of Pages</td><td style="width: 30.4097%;">FeatStd::UInt32</td><td style="width: 50.8016%;">Number of available pages.</td></tr><tr><td style="width: 18.7886%;">Decrement Key Code</td><td style="width: 30.4097%;">Candera::KeyboardKeyCode::Enum</td><td style="width: 50.8016%;">The Key Code triggering decrement of the value.</td></tr><tr><td style="width: 18.7886%;">Increment Key Code</td><td style="width: 30.4097%;">Candera::KeyboardKeyCode::Enum</td><td style="width: 50.8016%;">The Key Code triggering increment of the value.</td></tr><tr><td style="width: 18.7886%;">Blend Type</td><td style="width: 30.4097%;">BlendType::Enum</td><td style="width: 50.8016%;">Sets the blend option.</td></tr></tbody></table>

---

#### Roll

The Control represents a vertical list of numeric values from a specified range with a specified step. Current value of the Control is visible in the middle of the control and can be zoomed like using lens. Changing the current value can be animated and can be done using touch/pointer or configurable keys of a keyboard. One can edit the current value of the Control by entering it with a keyboard.

To use the Control simply put it in a scene and configure all desirable properties. A roll can *forward value* as well as receive a *send value as event*.

<p class="callout info">The range is implemented in a way that it starts at Minimum Value, increases by (positive) StepSize but no further than Maximum Value. This conforms to the way range stepping is usually implemented, and gives configuration flexibility.</p>

<div drawio-diagram="5478"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1710519346.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-12" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Focusable  
</td><td style="width: 28.9203%; height: 46.2667px;">bool  
</td><td style="width: 49.5716%; height: 46.2667px;">If true, the control is focusable. Otherwise the control cannot be focused.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Value</td><td style="width: 28.9203%; height: 29.4667px;">Float</td><td style="width: 49.5716%; height: 29.4667px;">The value which will be changed using the roll</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Min</td><td style="width: 28.9203%; height: 46.2667px;">Float</td><td style="width: 49.5716%; height: 46.2667px;">The minimum value which can be reached. This value is always smaller or equal to the MaxValue.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Max</td><td style="width: 28.9203%; height: 46.2667px;">Float</td><td style="width: 49.5716%; height: 46.2667px;">The maximum value which can be reached. This value is always bigger or equal to MinValue</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Step</td><td style="width: 28.9203%; height: 29.4667px;">Float</td><td style="width: 49.5716%; height: 29.4667px;">The increment/decrement of the value.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">LensVisible</td><td style="width: 28.9203%; height: 46.2667px;">bool</td><td style="width: 49.5716%; height: 46.2667px;">Is lens group visible? Enables highlighting of the current value, default zooming and bordering it.   
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Use Cyclic Roll</td><td style="width: 28.9203%; height: 46.2667px;">bool</td><td style="width: 49.5716%; height: 46.2667px;">Is roll cyclic? If true the MinValue of the Control can be reached after the MaxValue of the Control and vice versa</td></tr><tr style="height: 124.667px;"><td style="width: 21.508%; height: 124.667px;">Allow Dragging Past Limit</td><td style="width: 28.9203%; height: 124.667px;">bool</td><td style="width: 49.5716%; height: 124.667px;">Allow temporary over-dragging (dragging to blank values before first and after last entry).

If true there is visible animation of the Control being „out of range“ while moving below minimum and above maximum value.

</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Value Style</td><td style="width: 28.9203%; height: 29.4667px;">Candera::TextRendering::Style</td><td style="width: 49.5716%; height: 29.4667px;">Sets the text style for the values outside the Lens.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Value Color</td><td style="width: 28.9203%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.5716%; height: 46.2667px;">Specifies color of values in the vertical list outside the Lens</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Lens Style</td><td style="width: 28.9203%; height: 29.4667px;">Candera::TextRendering::Style</td><td style="width: 49.5716%; height: 29.4667px;">Sets the text style for the values inside the Lens.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Unit Text</td><td style="width: 28.9203%; height: 46.2667px;">String</td><td style="width: 49.5716%; height: 46.2667px;">Text used in lens (it means: when the lens is used at all) to present a unit of the value</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Unit Style</td><td style="width: 28.9203%; height: 29.4667px;">Candera::TextRendering::Styler</td><td style="width: 49.5716%; height: 29.4667px;">Sets the text style for the Unit Text.</td></tr><tr style="height: 35.0667px;"><td style="width: 21.508%; height: 35.0667px;">Unit Margin</td><td style="width: 28.9203%; height: 35.0667px;">[Candera::Margin](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_margin.html "A non-zero margin applies space outside the element layout's width and height. The values can be set ...")</td><td style="width: 49.5716%; height: 35.0667px;">Specifies margin of the UnitText</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Unit Color</td><td style="width: 28.9203%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.5716%; height: 29.4667px;">Specifies color of the UnitText</td></tr><tr style="height: 35.0667px;"><td style="width: 21.508%; height: 35.0667px;">Decoration Image</td><td style="width: 28.9203%; height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 49.5716%; height: 35.0667px;">Specifies a border image of the Lens</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Text Input Color</td><td style="width: 28.9203%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.5716%; height: 46.2667px;">Specifies color of the text entered in the InputField while editing the current value of the Control</td></tr><tr style="height: 49.0667px;"><td style="width: 21.508%; height: 49.0667px;">Text Edit Background</td><td style="width: 28.9203%; height: 49.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 49.5716%; height: 49.0667px;">The background image used for the Input Field when entering Text Edit mode.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Max Text Length</td><td style="width: 28.9203%; height: 46.2667px;">Unsigned Int 16</td><td style="width: 49.5716%; height: 46.2667px;">Specifies maximum count of characters that may be entered while editing the current value of the Control</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Decrement Key Code</td><td style="width: 28.9203%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.5716%; height: 29.4667px;">Key used to decrement the current value of the Control</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Increment Key Code</td><td style="width: 28.9203%; height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.5716%; height: 29.4667px;">Key used to increment the current value of the Control</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Edit Key Code</td><td style="width: 28.9203%; height: 46.2667px;">Candera::KeyboardKeyCode::Enum</td><td style="width: 49.5716%; height: 46.2667px;">Key used to enter edit mode (show InputField) of the current value of the Control</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Blend Type</td><td style="width: 28.9203%; height: 29.4667px;">BlendType::Enum</td><td style="width: 49.5716%; height: 29.4667px;">Sets the blend option.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Keyboard Node</td><td style="width: 28.9203%; height: 46.2667px;">Node</td><td style="width: 49.5716%; height: 46.2667px;">Specifies which Keyboard control should be used when entering edit mode.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Keyboard Layout Name</td><td style="width: 28.9203%; height: 29.4667px;">String</td><td style="width: 49.5716%; height: 29.4667px;">Layout name.  
</td></tr></tbody></table>

---

#### SpinBox

A spin box or spin button is a control that enables users to increase or decrease the number value by a specific increment (often by 1, 5 or 10) via clicking an up or down arrow button.

The action key/s will move the focus in/out of the control and informs via event about the confirmed value.

<div drawio-diagram="5488"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711096212.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-13" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td>Focusable  
</td><td>bool  
</td><td>If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Value  
</td><td>Variant</td><td>The value to be formatted</td></tr><tr><td>Step Size  
</td><td>Variant  
</td><td>Increment/Decrement step value.</td></tr><tr><td>Minimum Value  
</td><td>Variant</td><td>Minimum value</td></tr><tr><td>Maximum Value  
</td><td>Variant</td><td>Maximum value</td></tr><tr><td>Text Format  
</td><td>String  
</td><td>The format string which includes one format specifier (beginning with %). See C printf() function.</td></tr><tr><td>Text Alignment  
</td><td>Enum (Left, Centered, Right, Automatic)</td><td>The horizontal text alignment, using the culture text direction, is used to define how text will be horizontally aligned within its layout area.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>Text color.</td></tr><tr><td>Disabled Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>Disabled text color.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be used.</td></tr><tr><td>Spinbox Color Hovered  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)  
</td><td>The color for hovered SpinBox.</td></tr><tr><td>Spinbox Color Disabled  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color for disabled SpinBox overlay.</td></tr><tr><td>Background Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.</td></tr><tr><td>Arrow Up Normal Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The increment button image.</td></tr><tr><td>Arrow Up Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The increment button pressed image.</td></tr><tr><td>Arrow Down Normal Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The decrement button image.</td></tr><tr><td>Arrow Down Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The decrement button pressed image.</td></tr><tr><td>Increment Key Code  
</td><td>Candera::KeyboardKeyCode::Enum</td><td>KeyCode of the key used to increase value.</td></tr><tr><td>Decrement Key Code  
</td><td>Candera::KeyboardKeyCode::Enum</td><td>KeyCode of the key used to decrease value.</td></tr><tr><td>Blend Type  
</td><td style="width: 28.9203%; height: 29.4667px;">BlendType::Enum</td><td style="width: 49.5716%; height: 29.4667px;">The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### Sub-List

You can create a submenu in your solution by configuring this control as a child node of a List control.

With this control, you can easily invoke a submenu that can be expanded or collapsed. Key navigation is also built-in.

For detailed usage, please refer to “Getting Started &gt; Sample Solutions &gt; GettingStartedControls Solution &gt; GettingStartedControls Part 3”.

<div drawio-diagram="5489"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711098529.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-14" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If set to false the List will not react to Focus events. It also sets the Visibility of the list.</td></tr><tr><td>Visible  
</td><td>bool  
</td><td>If true, the List is being rendered.</td></tr><tr><td>Parent List Node  
</td><td>Candera::AbstractNodePointer</td><td>The node with a ListBehavior that acts as a parent to this SubListBehavior.</td></tr><tr><td>Handle Keyboard Events  
</td><td>bool  
</td><td>Makes the behavior handle KeyboardFocusNavigation events internally.</td></tr><tr><td>Scroll Direction  
</td><td>ScrollDirection::Enum (Vertical, Horizontal)  
</td><td>The direction in which the SubListBehavior scrolls.</td></tr><tr><td>Animation Duration  
</td><td>UInt32  
</td><td>Duration of the scrolling animation.</td></tr><tr><td>Deceleration Factor  
</td><td>Float  
</td><td>Loss of flick animation speed over time.</td></tr><tr><td>Max Speed Per Flick  
</td><td>Float  
</td><td>Maximum amount of speed each flick motion adds to the flick animation.</td></tr><tr><td>Min Speed Per Flick  
</td><td>Float  
</td><td>Minimum speed required to count a touch gesture as a flick and start or continue the flick animation.</td></tr><tr><td>Min Movement To Scrolling  
</td><td>UInt32  
</td><td>Minimum distance a touch gesture needs to move to start a scrolling animation.</td></tr><tr><td>Max Touch Sample Age  
</td><td>UInt32  
</td><td>Maximum age in milliseconds of touch movement speed counted towards generating flick animation speed.</td></tr><tr><td>Items  
</td><td>Items  
</td><td>The items property is used for binding of dynamic items. It can only be set via databinding. Only one visible list control should be bound to a fragment list in the model. Otherwise the list fragments in the model are not able to provide data for both list controls. Use a separate list model that is filled with the same data if such a use case is required.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### TextButton

The TextButton Control offers an easy way to define all different states of a button and an action that is performed when clicking it.

As for the simple Button Control the visual appearance of the TextButton can also be configured with three images depending on the button's state and a hovered color that can be defined including an alpha value.

Additionally the TextButton offers a predefined TextNode which can be modified via the Text and the Text Style properties.

The action that is performed when pressing the TextButton can easily be defined in the <span style="color: rgb(230, 126, 35);">[EventHandler Tab](https://doc316en.candera.eu/link/569#bkmrk-page-title)</span>. The functionality of the TextButton is similar to the <span style="color: rgb(230, 126, 35);">[Button](#bkmrk-button)</span>. An example configuration of the Event Handler is given in the <span style="color: rgb(230, 126, 35);">[Button section](#bkmrk-button)</span>.

<div class="contents" id="bkmrk--49"><div class="contents"><div class="contents"><div class="textblock"><div drawio-diagram="5490"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711101086.png" alt=""/></div>

</div></div></div></div>**Properties**

<table border="1" id="bkmrk-property-name-type-d-15" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td>Focusable  
</td><td>bool  
</td><td>If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Text  
</td><td>String  
</td><td>The Text that will be set to the Text Node.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be used.</td></tr><tr><td>Normal Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as Button Image for the color multiplication of other states like Hovered.</td></tr><tr><td>Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as Button Image if the pressed state applies.</td></tr><tr><td>Focused Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Image which is transparent in the center (border). It is used for the control with the current focus (only one of the HMI)</td></tr><tr><td>Hovered Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which is used as hovered color for blending with the Button Image.</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color to set on the disabled Button.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color of the text.</td></tr><tr><td>Disabled Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color to set on the effect of the Text.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### CheckBox

The CheckBox Control can easily be configured with a text, images for a normal and a pressed state as well as for a selected and a selected pressed state. Additionally a focused image can be defined. The action that is performed when the value changed can easily be defined in the <span style="color: rgb(230, 126, 35);">[EventHandler Tab](https://doc316en.candera.eu/link/569#bkmrk-page-title)</span>.

<div drawio-diagram="5491"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711101601.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-16" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td>Focusable  
</td><td>bool  
</td><td>If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Value  
</td><td>bool/Variant  
</td><td>Selected or not (true/false).</td></tr><tr><td>Text  
</td><td>String  
</td><td>Text of the CheckBox.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Normal Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as CheckBox Image if the normal state applies.</td></tr><tr><td>Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as CheckBox Image if the not selected CheckBox is pressed.</td></tr><tr><td>Selected Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as CheckBox Image if the selected state applies.</td></tr><tr><td>Selected Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as CheckBox Image if the selected CheckBox is pressed.</td></tr><tr><td>Focused Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Image which is transparent in the middle (border). Used for the control with the current KeyboardFocus (only one of the HMI)  
Frames the entire control (including text)</td></tr><tr><td>Hovered Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)  
</td><td>The color which is used as highlighted color for blending with the Selected/Normal image.</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)  
</td><td>The color to set on the effect.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

**Functionality**

The functionality of the CheckBox can be edited in the Behaviors panel or in the EventHandler Tab (see also chapter <span style="color: rgb(230, 126, 35);">[EventHandler Tab](https://doc316en.candera.eu/link/569#bkmrk-page-title)</span>). An EventHandler that checks for the Value Changed Event will perform the user defined action.

<div drawio-diagram="5493"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711103449.png" alt=""/></div>

<table class="doxtable" id="bkmrk-behavior-name-type-p-2" style="width: 100%;"><tbody><tr><th class="align-left" style="width: 18.4178%;">**Behavior Name**</th><th class="align-left" style="width: 16.1928%;">**Type**</th><th class="align-left" style="width: 12.854%;">**predefined/ userdefined**</th><th class="align-left" style="width: 52.5354%;">**Description**</th></tr><tr><td style="width: 18.4178%;">EventHandler</td><td style="width: 16.1928%;">Control Behavior</td><td style="width: 12.854%;">predefined</td><td style="width: 52.5354%;">Checks a defined condition and invokes a defined action behavior if that condition is true.</td></tr><tr><td style="width: 18.4178%;">Check changed Value</td><td style="width: 16.1928%;">Control Condition Behavior</td><td style="width: 12.854%;">userdefined</td><td style="width: 52.5354%;">Condition checks the changed value of the CheckBox.</td></tr><tr><td style="width: 18.4178%;">Action</td><td style="width: 16.1928%;">Action Behavior</td><td style="width: 12.854%;">userdefined</td><td style="width: 52.5354%;">Userdefined action that will be performed when the checkbox is clicked.</td></tr></tbody></table>

---

#### ToggleButton

The ToggleButton Control offers an easy way to define all different states of a toggle button and an action that is performed when clicking it.

It is typically used for activating and deactivating a persisting functionality.

As for the simple Button Control the visual appearance of the ToggleButton can also be configured with four images depending on the button's state and a hovered color that can be defined including an alpha value.

Additionally the ToggleButton offers two predefined TextNode that can be modified via the First Text and the Second Text properties.

The action that is performed when pressing the ToggleButton can easily be defined in the <span style="color: rgb(230, 126, 35);">[EventHandler Tab](https://doc316en.candera.eu/link/569#bkmrk-page-title)</span>. The functionality of the ToggleButton is similar to the <span style="color: rgb(230, 126, 35);">[Button](#bkmrk-button)</span> (when reacting on mouse clicks) or to the <span style="color: rgb(230, 126, 35);">[CheckBox ](#bkmrk-checkbox)</span>(when reacting on a value change). Corresponding sample configuration of the Event Handler are given in the <span style="color: rgb(230, 126, 35);">[Button section](#bkmrk-button)</span> and in the<span style="color: rgb(230, 126, 35);"> [CheckBox section](#bkmrk-checkbox)</span>.

<div drawio-diagram="5494"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711103925.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-17" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If set to false it will not react on focus events an</td></tr><tr><td>Focusable  
</td><td>bool  
</td><td>If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Value  
</td><td>bool/Variant  
</td><td>Toggled or not (true/false).</td></tr><tr><td>First Text  
</td><td>String  
</td><td>The Text that will be set with the first toggle image.</td></tr><tr><td>Second Text  
</td><td>String  
</td><td>The Text that will be set with the second toggle image.</td></tr><tr><td>First Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as ToggleButton Image if the first state applies.</td></tr><tr><td>First Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as ToggleButton Image if the first toggle image is pressed.</td></tr><tr><td>Second Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as ToggleButton Image if the second toggle state applies.</td></tr><tr><td>Second Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as ToggleButton Image if the second toggle image is pressed.</td></tr><tr><td>Focused Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Image which is transparent in the middle (border). Used for the control with the current KeyboardFocus (only one of the HMI)  
Frames the entire control (including text)</td></tr><tr><td>Hovered Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which is used as highlighted color for blending with the first and second toggle image.</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which is used as disabled color for blending with the first and second toggle image.</td></tr><tr><td>Click Count  
</td><td>ClickCount::Enum (AnyClick, SingleClick, DoubleClick, TripleClick)  
</td><td>If the value ClickConditionBehavior receives matches the Click Count set, it will return a positive response.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### RadioButton

The RadioButton Control can easily be configured with a text, images for a normal and a pressed state as well as for a selected and a selected pressed state. Additionally a focused image can be defined. The action that is performed when the value changed can easily be defined in the <span style="color: rgb(230, 126, 35);">[EventHandler Tab](https://doc316en.candera.eu/link/569#bkmrk-page-title)</span>.

The functionality of the RadioButton is similar to the <span style="color: rgb(230, 126, 35);">[CheckBox ](#bkmrk-checkbox)</span>(when reacting on a value change). A corresponding sample configuration of the Event Handler is given in the<span style="color: rgb(230, 126, 35);"> [CheckBox section](#bkmrk-checkbox)</span>.

<div drawio-diagram="5495"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711108406.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-18" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td>Focusable  
</td><td>bool  
</td><td>If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Text  
</td><td>String  
</td><td>Text of the RadioButton.</td></tr><tr><td>TextStyle  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Normal Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as RadioButton Image if the normal state applies.</td></tr><tr><td>Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as RadioButton Image if the not selected RadioButton is pressed.</td></tr><tr><td>Selected Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as RadioButton Image if the selected state applies.</td></tr><tr><td>Selected Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image which is used as RadioButton Image if the selected RadioButton is pressed.</td></tr><tr><td>Focused Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Image which is transparent in the middle (border). Used for the control with the current KeyboardFocus (only one of the HMI). Frames the entire control (including text)</td></tr><tr><td>Hovered Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which is used as highlighted color for blending with the Selected/Normal image.</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color to set on the effect.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr><tr><td>Selected  
</td><td>bool/Variant  
</td><td>Specifies the type and the value to pass onto Process Value Behavior.</td></tr></tbody></table>

---

#### CircularSlider

Circular slider is a control that allows user to set the value using circular slide movement or directly indicate value on slider's bar.

In default version the slider is a full circle, but using properties user easily can operate on e.g. quarter of the circle. In case of circular slider user can set the start angle and the end angle and map that to output value which is also customizable.

User can use the circular slider's value as an input for another control using "Forward Value Behavior".

Change of the value is indicated by slider's bar and thumb position. Thumb is optional (please check UseThumb property)

<p class="callout info">Circular slider can be connected with all controls that support "changeValueEvent". For example: progress bar, gauge, text value.</p>

<div drawio-diagram="5496"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711109340.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-19" style="border-collapse: collapse; width: 100%; height: 658.001px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Value</td><td style="height: 29.4667px;">Variant</td><td style="height: 29.4667px;">Value of the slider</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Minimum Value  
</td><td style="height: 29.4667px;">Variant  
</td><td style="height: 29.4667px;">Minimum value of the slider</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Maximum Value  
</td><td style="height: 29.4667px;">Variant  
</td><td style="height: 29.4667px;">Maximum value of the slider</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Step Size  
</td><td style="height: 29.4667px;">Variant  
</td><td style="height: 29.4667px;">Step size for value increment/decrement by keyboard</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Minimum Angle  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Minimum rotation of the slider.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Maximum Angle  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Maximum rotation of the slider.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Increment Key Code  
</td><td style="height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="height: 29.4667px;">Increment value KeyCode</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Decrement Key Code  
</td><td style="height: 29.4667px;">Candera::KeyboardKeyCode::Enum</td><td style="height: 29.4667px;">Decrement value KeyCode</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Background Image  
</td><td style="height: 29.4667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 29.4667px;">Background image</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Active Image  
</td><td style="height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.0667px;">Image showing current value, will be masked, must have GlBitmapColorMaskBlend</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Thumb Image  
</td><td style="height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.0667px;">Thumb image</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Thumb Image Pressed  
</td><td style="height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.0667px;">Thumb image during touch</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Thumb Hover Color  
</td><td style="height: 35.0667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.0667px;">Hover color blend for thumb image</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Focus Image  
</td><td style="height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.0667px;">Focus node image</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Disabled Color  
</td><td style="height: 35.0667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.0667px;">Disabled color blend for control</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Enabled  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Focusable  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Use Thumb  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">Should thumb node be visible?</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Active Image Hover Color  
</td><td style="height: 35.0667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.0667px;">Hover color blend for active image.   
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set on the affected nodes.</td></tr></tbody></table>

<p class="callout info">Using "Pivot hint" images' property it is possible to create customized slider control similar to customized gauge control. Please check the [<span style="color: rgb(230, 126, 35);">Advanced Cluster Solution part 1-4</span>](https://doc316en.candera.eu/books/best-practice/chapter/advanced-cluster-solution). </p>

---

#### Slider

The Slider provides a value which changes corresponding to the position of the knob. This knob can be dragged. Additionally the value can be set directly or by an event (e.g. by using the Send Value as Event Behavior). Furthermore the Slider offers to define the visual representation of different states (f.e. Pressed, Hovered).

<div drawio-diagram="5497"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711110887.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-20" style="border-collapse: collapse; width: 100%; height: 658.001px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Enabled</td><td style="height: 29.4667px;">bool</td><td style="height: 29.4667px;">If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td>Focusable  
</td><td>bool  
</td><td>If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Value  
</td><td>Variant  
</td><td>The bindable value of the slider</td></tr><tr><td>Minimum  
</td><td>bool/Variant  
</td><td>Minimum Range</td></tr><tr><td>Maximum  
</td><td>bool/Variant  
</td><td>Maximum Range</td></tr><tr><td>Knob Normal Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image of the knob in normal state.</td></tr><tr><td>Knob Pressed Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image of the knob in pressed state.</td></tr><tr><td>Knob Center Margin  
</td><td>Candera::Margin</td><td>Knob Center Margin, used for positioning the Knob around the Slider value. Should not exceed the contorl boundary to avoid clipping issues of standalone Slider.</td></tr><tr><td>Track Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image of the slider track.</td></tr><tr><td>Track Fill Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.</td></tr><tr><td>Track Margin

</td><td>Candera::Margin</td><td>Track Margin, can be used to provide space to display Knob around the track, so it fits within Control boundary and Focus Rectangle.</td></tr><tr><td>Fill Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>Color that gets blended with the fill color</td></tr><tr><td>Focused Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Image which is transparent in the center (border). It is used for the control with the current focus</td></tr><tr><td>Hovered Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which is used as hovered color for blending with the Track Image.</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td>The color which can be used from other Behaviors.</td></tr><tr><td>Use Center  
</td><td>bool  
</td><td>If true, the center value defined for the knob bitmap is used to align the knob to the value position, otherwise the calculated center.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

<p class="callout info">Slider control does not support external clipping set by ClippingSetterTraverser. The Knob may be incorrectly clipped when placed inside a control that recursively imposes clipping on its children (e.g. List).</p>

**Functionality**

The functionality of the slider can be extended by the Forward Value Behavior. Therefore attach the behavior to the Slider which offers you to set a Target Node. The Behavior will then forward the changed value to the defined control. (Control needs a Value Behavior where "Accept Value Behavior" is enabled.)

<div drawio-diagram="5500"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711126803.png" alt=""/></div>

<table border="1" class="doxtable" id="bkmrk-behavior-name-type-p-3" style="border-collapse: collapse; width: 100%; border-width: 1px; border-style: solid;"><tbody><tr><th style="width: 20.5192%; border-width: 1px;">**Behavior Name**</th><th style="width: 15.204%; border-width: 1px;">**Type**</th><th style="width: 11.9976%; border-width: 1px;">**predefined/ userdefined**</th><th style="width: 52.2793%; border-width: 1px;">**Description**</th></tr><tr><td style="width: 20.5192%; border-width: 1px;">Forward Value Behavior</td><td style="width: 15.204%; border-width: 1px;">Value Processing</td><td style="width: 11.9976%; border-width: 1px;">userdefined</td><td style="width: 52.2793%; border-width: 1px;">Forwards a received value. Associated controls with a value property receive the value.</td></tr><tr><td style="width: 20.5192%; border-width: 1px;">Value Behavior</td><td style="width: 15.204%; border-width: 1px;">Value Processing</td><td style="width: 11.9976%; border-width: 1px;">predefined</td><td style="width: 52.2793%; border-width: 1px;">Control which has to receive the value has to have a Value Behavior where "Accept Value Behavior" is enabled.</td></tr></tbody></table>

---

#### ScrollView

Similar to the <span style="color: rgb(230, 126, 35);">[List](#bkmrk-listst)</span> the ScrollView offers an Anchor where any node (also Controls) can be attached to.

<div drawio-diagram="5499"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711125884.png" alt=""/></div>

The size of the ScrollView can be set using the Layout of the Control. If the size of the attached nodes is bigger than the layout size of the ScrollView, Scrollbars will appear. In difference to the <span style="color: rgb(230, 126, 35);">[List](#bkmrk-list)</span> the ScrollView doesn't layout the attached nodes. So Controls and other nodes can be placed at any position. (Also the hierarchy doesn't matter which means that an additional Layouter or GroupBox can be added.)

**Properties**

<table border="1" id="bkmrk-property-name-type-d-21" style="border-collapse: collapse; width: 100%; height: 58.9334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Vertical Scrollbar Visibility</td><td style="height: 29.4667px;">ScrollbarVisibility::Enum (Automatic, Collapsed, Visible)</td><td style="height: 29.4667px;">Configure the visibility of the scrollbar. By default it is set to Automatic which will determine the visibility based on the actual content.</td></tr><tr><td>Horizontal Scrollbar Visibility  
</td><td>ScrollbarVisibility::Enum (Automatic, Collapsed, Visible)</td><td>Configure the visibility of the scrollbar. By default it is set to Automatic which will determine the visibility based on the actual content.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### List

The List offers an Anchor where any nodes (also Controls) can be attached to. The list then automatically layouts these child nodes.

When setting the layout size of the List, a Scrollbar will appear as soon as the layout size is smaller than the list of items. Whether the Scrollbar appears sideward or at the bottom depends on the Scroll Direction Property.

<p class="callout info">Be sure that the list items are child nodes (just first level) of the anchor. So no additional Layouter or GroupBox is possible.</p>

<div drawio-diagram="5502"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711127105.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-22" style="border-collapse: collapse; width: 100%; height: 58.9334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Handle Keyboard Events</td><td style="height: 29.4667px;">bool</td><td style="height: 29.4667px;">Makes the behavior react to KeyboardFocusNavigation events.</td></tr><tr><td>Scroll Direction  
</td><td>Enum (Vertical, Horizontal)</td><td>The direction in which the List scrolls.</td></tr><tr><td>Animation Duration  
</td><td>UInt32  
</td><td>Duration of the scrolling animation.</td></tr><tr><td>Deceleration Factor  
</td><td>Float  
</td><td>Loss of flick animation speed over time.</td></tr><tr><td>Max Speed Per Flick  
</td><td>Float  
</td><td>Maximum amount of speed each flick motion adds to the flick animation.</td></tr><tr><td>Min Speed Per Flick  
</td><td>Float  
</td><td>Minimum speed required to count a touch gesture as a flick and start or continue the flick animation.</td></tr><tr><td>Min Movement to Scrolling  
</td><td>UInt32  
</td><td>Minimum distance a touch gesture needs to move to start a scrolling animation.</td></tr><tr><td>Max Touch Sample Age  
</td><td>UInt32  
</td><td>Maximum age in miliseconds of touch movement speed counted towards generating flick animation speed.</td></tr><tr><td>Scrollbar Handle Minimum Size  
</td><td>UInt32  
</td><td>The minimum height (for vertical scrollbar) or minimum width (for horizontal scrollbar) of the handle in pixels.</td></tr><tr><td>Scrollbar Visibility  
</td><td>ScrollbarVisibility::Enum (Automatic, Collapsed, Visible)</td><td>Configure the visibility of the scrollbar. By default it is set to Automatic which will determine the visibility based on the actual content.</td></tr><tr><td>Scrollbar Min Movement to Scrolling  
</td><td>UInt32  
</td><td>Minimum distance a touch gesture needs to move to start scrolling.</td></tr><tr><td>Items  
</td><td>ItemsType  
</td><td>The items property is used for binding of dynamic items. It can only be set via databinding. Only one visible list control should be bound to a fragment list in the model. Otherwise the list fragments in the model are not able to provide data for both list controls. Use a separate list model that is filled with the same data if such a use case is required.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

<p class="callout info">For a more advanced application and extended functionality of the list control, please also see the [<span style="color: rgb(230, 126, 35);">List Control - Snapping Mechanism</span>](https://doc316en.candera.eu/books/controls-and-behaviors/page/list-control-snapping-mechanism).</p>

---

#### MultiStateButton

The MultiStateButton Control offers an easy way to define all different states of a button. Additionally the MultiStateButton provides a value for the number of different representations (images). Each click increases this value (value cycles when reaching the maximum). Corresponding to this value the current image of the Button will be chosen out of an array of images.

Similar to the TextButton also the MultistateButton offers a TextNode which can be modified via the Text and the Text Style properties.

The functionality of the MultiStateButton can be edited in the Behaviors panel or in the EventHandler Tab (see also chapter <span style="color: rgb(230, 126, 35);">[EventHandler Tab](https://doc316en.candera.eu/books/controls-and-behaviors/page/eventhandler-tab)</span>). An EventHandler that checks for the Value Changed Event will perform the user defined action corresponding to the current value.

This functionality is similar to the <span style="color: rgb(230, 126, 35);">[CheckBox ](#bkmrk-checkbox)</span>(when reacting on a value change). A corresponding sample configuration of the Event Handler is given in the<span style="color: rgb(230, 126, 35);"> [CheckBox section](#bkmrk-checkbox)</span>.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-23" style="border-collapse: collapse; width: 100%; height: 461.467px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 63.0667px;"><td style="height: 63.0667px;">Enabled</td><td style="height: 63.0667px;">bool</td><td style="height: 63.0667px;">If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Focusable  
</td><td style="height: 46.2667px;">bool  
</td><td style="height: 46.2667px;">If true, the control is focusable. Otherwise the control can not be focued.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Current State  
</td><td style="height: 29.4667px;">Variant  
</td><td style="height: 29.4667px;">Current state of the MultiStateButton (starts with 0).</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Maximum State  
</td><td style="height: 29.4667px;">bool/Variant  
</td><td style="height: 29.4667px;">Maximum value of MultiStateButton (starts with 0).</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Text  
</td><td style="height: 29.4667px;">String  
</td><td style="height: 29.4667px;">Text of the Button.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Text Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be set to the Text Node.</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">StateImages  
</td><td style="height: 35.0667px;">list of [Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")  
</td><td style="height: 35.0667px;">A list of images which should be available for selection.</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Focused Image  
</td><td style="height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.0667px;">Image which is transparent in the middle (border). Used for the control with the current focus. Frames the entire control (including text)</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Pressed Color  
</td><td style="height: 35.0667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.0667px;">The color which get multiplied to the current Button image to represent the Pressed State.</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Hovered Color  
</td><td style="height: 35.0667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.0667px;">The color which get multiplied to the current Button image to represent the Hover State.</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Disabled Color  
</td><td style="height: 35.0667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.0667px;">The color to set on the disabled Control.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### TouchIndication

The TouchIndication indicates the location of touch events. The indicator appears offset from the touch location by its distance to the origin point in the scene. Furthermore on and off animations can be set for animating the TouchIndication.

Also an area can be defined where the TouchIndication is allowed to take place.

<div drawio-diagram="5503"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711701638.png" alt=""/></div>

<p class="callout info">The Indicators offset to the touch position is set by the offset to the origin point of the scene (0,0). So if the TouchIndication should be centered at the touch position be sure to position the TouchIndication as shown in the image beneath.</p>

<div drawio-diagram="5514"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711723158.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-24" style="border-collapse: collapse; width: 100%; height: 245.734px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 10px;"><td style="height: 10px;">Touchable Id</td><td style="height: 10px;">String</td><td style="height: 10px;">Can be packaged into an event or message to identify its sender.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">On Animation  
</td><td style="height: 29.4667px;">Animation  
</td><td style="height: 29.4667px;">Optional animation played on placing a touch (touch Down). Note: This controls modifies its own Position to indicate the touch location. Please avoid animating its position.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Off Animation  
</td><td style="height: 29.4667px;">Animation  
</td><td style="height: 29.4667px;">Optional animation played on releasing the touch (touch Up). The indicator will be hidden after the animation stops (its rendering will be disabled). Note: This controls modifies its own Position to indicate touch location. Please avoid animating its position.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Hide Indicator On Move  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">Hide the touch indicator when a move is detected, otherwise the indicator will stay visible during movement until the finger is lifted from the screen.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Touch Area Node  
</td><td style="height: 29.4667px;">Node  
</td><td style="height: 29.4667px;">Limits to the Touch Area Node's bounding rectangle - the area the Touch Indication Behavior indicates touch on.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Camera  
</td><td style="height: 29.4667px;">Camera Node  
</td><td style="height: 29.4667px;">The camera used to render the touch indicator. Will be used to correctly match touch position with object position in case the camera has a position offset.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Image  
</td><td style="height: 29.4667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 29.4667px;">The image BitmapActionBehavior will set on RenderNode.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### TouchIndication3D

Indicates the location of touch events in a 3D scene.

The minimum configuration required for TouchIndication3D includes setting its camera property. Optional on and off animations can be set for animating the TouchIndication.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-25" style="border-collapse: collapse; width: 100%; height: 245.734px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 10px;"><td style="height: 10px;">On Animation</td><td style="height: 10px;">Animation</td><td style="height: 10px;">Optional animation played on placing a touch (touch Down). Note: This controls modifies its own Position to indicate the touch location. Please avoid animating its position.</td></tr><tr><td>Touchable Id  
</td><td>String  
</td><td>Can be packaged into an event or message to identify its sender.</td></tr><tr><td>Off Animation  
</td><td>Animation  
</td><td>Optional animation played when the indicator is hidden.</td></tr><tr><td>Hide Indicator On Move  
</td><td>bool  
</td><td>Hide the touch indicator when a move is detected, otherwise the indicator will stay visible during movement until the finger is lifted from the screen.</td></tr><tr><td>Camera  
</td><td>Camera Node  
</td><td>TouchIndication3D modifies its own position to place itself in front of this camera so to appear under the touch location on the screen. Disclamer: The minimum configuration required for TouchIndication3D includes setting its camera property.</td></tr><tr><td>Touch Area Node  
</td><td>Node  
</td><td>The node whose area the Touch Indication Behavior should indicate touch events on.</td></tr><tr><td>Distance From Camera  
</td><td>Float  
</td><td>How far from the camera should the touch indication node be rendered.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### TouchIndication3DMarker

The TouchIndication3D uses the TouchIndication3DMarker as TouchIndication3DAnchor. The TouchIndication3DMarker's function is to visually mark the location of a detected touch.

<div drawio-diagram="5504"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711704195.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-26" style="border-collapse: collapse; width: 100%; height: 245.734px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 10px;"><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

# Common

#### Breadcrumb

A Breadcrumb shows the history/flow through the screen hierarchy and allows user, for example, to navigate between scenes using breadcrumb's elements. As a part of breadcrumb it's possible to use all elements that contain text control (for example Text, TextValue or TextButton).

For each breadcrumb element (for example a text button) user should assign a proper <span style="color: rgb(230, 126, 35);">[Breadcrumb Action](https://doc316en.candera.eu/link/582#bkmrk-breadcrumb-action)</span> in its behavior list.

It is possible to create your own control for your own needs (e.g. adding a separator between items), that will work properly with the breadcrumb. Remember to add *breadcrumb action* behavior in own control.

<p class="callout info">When breadcrumb gets more value than it can display it will always collapse elements, replacing the display of the name with the ellipsis text (e.g. three dots). First element is always fully visible.</p>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">State Machine Node</td><td style="height: 29.4667px;">Node</td><td style="height: 29.4667px;">State machine node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Ellipsis Text  
</td><td style="height: 29.4667px;">String  
</td><td style="height: 29.4667px;">When more elements are added than the breadcrumb can show, then one element will be replaced with the text from this field (collapse effect).</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Path Delimiter  
</td><td style="height: 29.4667px;">String  
</td><td style="height: 29.4667px;">Tag that separates elements contained in a path.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set.</td></tr></tbody></table>

<p class="callout info">Breadcrumb is not a standalone control, it does not trigger internally any scene transitions so it should be always connected with external state machine. For that purpose, breadcrumb property *State Machine Node* should be set to a node that contains a *State Machine* behavior. Please check out the [<span style="color: rgb(230, 126, 35);">workflow</span>](https://doc316en.candera.eu/books/controls-and-behaviors/page/breadcrumb-statemachine-workflow) chapter for more information.  
</p>


---

#### Menu Icon

The main rationale behind the MenuIcon Control is an encapsulation and abstraction of an “icon” like in graphical environments of most known operating systems. It stores a bitmap and a string (label) together and provides single configuration of common behavior like positioning or highlighting.

It is designed to use inside the MenuItem Control and most probably one would like to use the MenuItem instead of plain MenuIcon.

<div drawio-diagram="5505"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711706885.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d" style="border-collapse: collapse; width: 100%; height: 276.534px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 35.0667px;"><td style="height: 35.0667px;">Image</td><td style="height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.0667px;">The image to set on the effect.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Label  
</td><td style="height: 29.4667px;">String  
</td><td style="height: 29.4667px;">The Text that will be set to the Text Node.</td></tr><tr style="height: 10px;"><td style="height: 10px;">Label Color  
</td><td style="height: 10px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 10px;">The color of the text.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Label Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be used.</td></tr><tr style="height: 29.4667px;"><td class="align-left" style="width: 24.2274%; height: 46.2667px;">Label Trimming  
</td><td style="width: 21.1386%; height: 46.2667px;">Enum (None, Ellipsis, Custom Text)</td><td style="height: 29.4667px;">Trimming defines the behavior to employ when content overflows the content area.</td></tr><tr style="height: 37.8667px;"><td style="height: 37.8667px;">Background Image  
</td><td style="height: 37.8667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 37.8667px;">The image to set on the effect.</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Background Enable Rendering  
</td><td style="height: 46.2667px;">bool  
</td><td style="height: 46.2667px;">If true, Rendering is enabled.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### Mesh2D

Performs a perspective projection of a 3D rotated effect (e.g. Bitmap or SolidColor effects) based on the configured origin, rotation and field of view.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-1" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Mesh Rotation</td><td>Float</td><td>Defines the rotation angle in degree around configured rotation axis at the configured origin.</td></tr><tr><td>Camera Distance  
</td><td>Float  
</td><td>Defines a normalized camera distance (the projection is based on a normalized geometry of width and height 1) with a default value of 1. </td></tr><tr><td>Rotation Axis  
</td><td>Candera::Vector3  
</td><td>Defines the axis (default is the y axis) for the rotation as a 3D direction vector (the vector will be internally normalized).</td></tr><tr><td>Field of View  
</td><td>Float  
</td><td>The area on the Y axis view field in degrees. It influences the perspective distortion of the projection. Higher angles will result in more distorted projection. Lower angles will result in less perspective distorted projections. The angle has to be higher than 0 and less than 180.</td></tr><tr><td>Fit Strategy  
</td><td>Enum (None, FitTopActualSize, FitToMaximumSize)  
</td><td>Defines how the perspective projected mesh should fit into the original boundaries.</td></tr><tr><td>Horizontal Origin  
</td><td>Enum (Left, Center, Right, Custom)  
</td><td>The origin influences where the rotation is performed and how the perspective projection looks. It is defined as a normalized (bitmap resolution independent) origin on the y axis as Left (0), Center (0.5), Right (1.0) or Custom (see CustomHorizontalOrigin).</td></tr><tr><td>Vertical Origin  
</td><td>Enum (Top, Center, Bottom, Custom)  
</td><td>The origin influences where the rotation is performed and how the perspective projection looks. It is defined as a normalized (bitmap resolution independent) origin on the y axis as Top (0), Center (0.5), Bottom (1.0) or Custom (see CustomVerticalOrigin).</td></tr><tr><td>Origin Offset  
</td><td>Candera::Vector2  
</td><td>In addition to the configured normalized origin this pixel based origin offset is added.</td></tr><tr><td>Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### Text

Displays a given text like a label.

It supports properties to set the Text, Text Style, Text Color, horizontal Text Alignment, flag for Multi Line, Line Spacing, flag for Word Wrap, choice for Trimming, and the used Trimming Text.

A Bindable Property is provided to set the Text by Data Binding.

<div drawio-diagram="5506"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711717000.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-2" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Text</td><td>String</td><td>The Text that will be set to the Text Node.</td></tr><tr><td>Text Color</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color of the text.</td></tr><tr><td>Text Style</td><td>Candera::TextRendering::Style</td><td>The Text that will be set to the Text Node.</td></tr><tr><td>Text Alignment</td><td>Enum (Left, Center, Right)</td><td>The horizontal text alignment, using the culture text direction, is used to define how text will be horizontally aligned within its layout area.</td></tr><tr><td>Multiline</td><td>bool  
</td><td>If multi line is disabled then the new line control characters will be ignored and text will always be rendered in one line.</td></tr><tr><td>Line Spacing  
</td><td>UInt16  
</td><td>Defines the distance between the baselines of successive lines of text.</td></tr><tr><td>Word Wrap  
</td><td>bool  
</td><td>If word wrapping is enabled then the lines that exceed the client area will be split during arrangement into multiple lines.</td></tr><tr><td>Trimming  
</td><td>Enum (None, Ellipsis, Custom Text)</td><td>Trimming defines the behavior to employ when content overflows the content area.</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set on the effect of the Text.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### AnalogClock

Represents an analog clock with images for the certain needles (hours, minutes, seconds). A data-bound value from the Player can be used to represent the current time. To see how to use the data-binding in combination with the clock please see [<span style="color: rgb(230, 126, 35);">GettingStartedControls Part 4</span>](https://doc316en.candera.eu/link/311#bkmrk-page-title)

There are properties to customize the visual representation of the analog clock. Every needle can be replaced by a custom image, as well as the background-image. A pivot-offset needs to be applied to the needle-images to be able to rotate them around the correct pivot point.

<div drawio-diagram="5507"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711717247.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-4" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Time</td><td>Variant</td><td>Specifies the type and the value to pass onto Process Value Behavior.</td></tr><tr><td>Offset In Minutes  
</td><td>Int32  
</td><td>Offset in minutes to add to time (i.e. for different time zones).</td></tr><tr><td>Show Seconds  
</td><td>bool  
</td><td>If true, seconds will be shown.</td></tr><tr><td>Seconds Needle Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.</td></tr><tr><td>Minutes Needle Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.</td></tr><tr><td>Hours Needle Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.</td></tr><tr><td>Face Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image to set on the effect.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### DigitalClock

Represents a digital clock, whereas the time-values (hours, minutes, seconds) are rendered as text. A data-bound value from the Player can be used to represent the current time. The control offers properties to customize the clock , like showing the hours in 12h or 24h. To see how to use the data-binding in combination with the clock please see <span style="color: rgb(230, 126, 35);">[GettingStartedControls Part 4](https://doc316en.candera.eu/link/311#bkmrk-page-title)</span>

<span style="color: rgb(0, 0, 0);">The remaining properties are there to customize the visual representation of the digital clock. For every text-node a color and text-style can be set.</span>

<div drawio-diagram="5509"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711718906.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-5" style="border-collapse: collapse; width: 100%; height: 559.867px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Time</td><td style="height: 29.4667px;">Variant</td><td style="height: 29.4667px;">Specifies the type and the value to pass onto Process Value Behavior.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Offset In Minutes  
</td><td style="height: 29.4667px;">Int32  
</td><td style="height: 29.4667px;">Offset in minutes to add to time (i.e. for different time zones).</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Show Full 24 Hours  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">If true, hours will be shown from 0-23, otherwise in AM/PM format.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">AM Text  
</td><td style="height: 29.4667px;">String  
</td><td style="height: 29.4667px;">The string of the AM label.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">PM Text  
</td><td style="height: 29.4667px;">String  
</td><td style="height: 29.4667px;">The string of the PM label.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Show Seconds  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">If true, seconds will be shown.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Hours Text Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be set to the Text Node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Minutes Colon Text Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be set to the Text Node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Minutes Text Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be set to the Text Node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Seconds Colon Text Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be set to the Text Node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Seconds Text Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be set to the Text Node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">AM PM Text Style  
</td><td style="height: 29.4667px;">Candera::TextRendering::Style</td><td style="height: 29.4667px;">The Style that will be set to the Text Node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Hours Color  
</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">The color to set on the effect.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Minutes Colon Color  
</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">The color to set on the effect.</td></tr><tr><td>Minutes Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set on the effect.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Seconds Colon Color  
</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">The color to set on the effect.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Seconds Color  
</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">The color to set on the effect.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">AM PM Color</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">The color to set on the effect.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set.</td></tr></tbody></table>

---

#### ProgressBar

The ProgressBar represents a bar that in- or decreases in its layout-size depending on the input-value.

Any value change is animated by interpolating intermediate values.

Images for background and bar can be set, whereas for the bar-image a nine-patch image is recommended.

<div drawio-diagram="5510"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711719428.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-6" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Value</td><td> </td><td>The current value of the Progress Bar.</td></tr><tr><td>Minimum  
</td><td>bool/Variant  
</td><td>Minimum value</td></tr><tr><td>Maximum  
</td><td>bool/Variant  
</td><td>Maximum value</td></tr><tr><td>Animation Mode  
</td><td>Enum (SpeedBased, TimeBased, Instant)  
</td><td>Animation mode sets a specific interpolation type.</td></tr><tr><td>Value Change Per Second  
</td><td>Float  
</td><td>How many values per second become interpolated.</td></tr><tr><td>Filter Time Constant  
</td><td>Float  
</td><td>The moment before the value is reached, the changing speed slows down. This prevents a sudden end of movement that can be felt as artificial in some cases.</td></tr><tr><td>Bar Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image of the Progress Bar that will be scaled.</td></tr><tr><td>Background Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The background image of the Progress Bar.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### FlipBook

The FlipBook flips through a list of images. Depending on the input value it renders the images in between with a given speed. The control can be used for playing animations that are stored as images.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-7" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Image Index</td><td>Variant</td><td>The index of the image to animate to.</td></tr><tr><td>Flip Speed  
</td><td>Float  
</td><td>How often in a second the images should be flipped.

*This property is only available if AnimationMode is set to "SpeedBased".*

</td></tr><tr><td>Images  
</td><td>List of [Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")  
</td><td>A list of images which should be available for flipping.</td></tr><tr><td>Upload Strategy  
</td><td>Enum (OnInit, OnDemand)  
</td><td>Specifies if images are uploaded on demand or when the behavior is instantiated. OnInit may cause an initial delay and keeps all images loaded. OnDemand avoids an initial delay and only keeps one image loaded.</td></tr><tr><td>Blend Type</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr><tr><td>Animation Mode  
</td><td>Enum (SpeedBased, TimeBased, Instant)  
</td><td>Animation mode sets a specific interpolation type.</td></tr></tbody></table>

**How to Add Images**

Import the image resources to be set into *one single folder* of the SceneComposer solution.

1. Select the FlipBook Control in your scene
2. In the Properties Panel: Click the icon \[ Select folder containing images \] in the \[ Images \] section of the FlipBook's Properties.
3. This will open the \[ Choose Item \] dialog.
4. Select a folder that contains the image resource to be set, and click the \[ OK \] button.
5. All image files contained in the selected folder will be set as images of the FlipBook control.
6. The images are ordered alphabetically by file name. They can be re-ordered manually as necessary using the up and down arrow buttons.

<div drawio-diagram="5562"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-04/drawing-5-1712909527.png" alt=""/></div>

**Animation Mode**

The *AnimationMode* property can be set to *SpeedBased*, *TimeBased* or *Instant*.

<table border="1" id="bkmrk-value-description-sp" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 15.6174%;"></col><col style="width: 84.5063%;"></col></colgroup><tbody><tr><td>**Value**  
</td><td>**Description**  
</td></tr><tr><td>SpeedBased  
</td><td>Starting with the image configured in property *Image Index,* the FlipBook's images are flipped through one by one until it reaches the image of the received destination value. The destination value is received e.g. by a *Value* Behavior or a *SwitchImage* Behavior. (see also [SwitchImage Example](https://doc316en.candera.eu/books/controls-and-behaviors/page/examples-using-predefined-behaviors#bkmrk-switch-image-example))

The speed of the flipped images can be configured in property *FlipSpeed.* It defines the frames/images displayed per second.

</td></tr><tr><td>TimeBased  
</td><td>Starting with the image configured in property *Image Index*, the FlipBook's images are flipped though one by one until it reaches the image of the received destination value. The destination value is received e.g. by a *Value* Behavior or a *SwitchImage* Behavior. (see also [SwitchImage Example](https://doc316en.candera.eu/books/controls-and-behaviors/page/examples-using-predefined-behaviors#bkmrk-switch-image-example))

The speed of the flipped images is defined by the InterpolationTime. It defines the time (in ms), which every single image will be displayed.

</td></tr><tr><td>Instant  
</td><td>Starting with the image configured in property *Image Index*, the FlipBook's image instantly switches to the image of the received destination value (without any interpolation).

AnimationMode *Instant* can be used for creating animations in SceneComposer, defining which image to display at certain key frames.

</td></tr></tbody></table>

**Create Animations Using FlipBook Control**

The FlipBook can be used to configure a set of images. These images can be animated using SceneComposer animation as follows:

1. Select the FlipBook control of your scene in the Scene Tree Panel and set the *Animation Mode* property to *Instant.*
2. Right-click on the FlipBook control in the Scene Tree Panel and choose \[ Add Animated Property... \] from the context menu.
3. Choose to animate the property \[ ImageIndex \] and select \[ Linear \] Interpolation.
4. Please note that you have now left the \[ Scene Design \] mode are now in \[ Animation Design \] mode.
5. Right click into the right side of the *Animation Value* panel and choose \[ Insert Key Frame \].
6. Configure the keyframes at timestamps 0, 1000 and 2000. Set the values 0.00, 20.00 and 0.00.
7. In the Animation Timeline panel you can check your animation. (Double-click your animation to switch to a more intuitive view.)
8. Press the button \[ Start the playback of the selected animation \] button to watch your animation. It should start from picture with index 0 and continue to picture with index 20 and then reverse (from picture with index 20 back to picture with index 0).

<div drawio-diagram="6888"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-09/drawing-5-1727447094.png" alt=""/></div>

**Result:** Animation with the FlipBook's images

[![FlipBook_loop.gif](https://doc316en.candera.eu/uploads/images/gallery/2024-09/4fPflipbook-loop.gif)](https://doc316en.candera.eu/uploads/images/gallery/2024-09/4fPflipbook-loop.gif)

---

#### Text Value

Uses a Value and a Text as format string.

Result is the formatted string. See C++ printf() function.

The value can be set directly or by an event. Event input can be provided by e.g. the Send Value as Event Behavior or the Forward Value Behavior.

<div drawio-diagram="5511"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711721461.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-8" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Value</td><td>Variant</td><td>The value to be formatted</td></tr><tr><td>Interval Handling  
</td><td>Enum (Limit, Cycle, Ignore)  
</td><td>Select how the behavior should react when the minimum or maximum limit is exceeded.</td></tr><tr><td>Minimum Value  
</td><td>bool/Variant  
</td><td>Minimum value</td></tr><tr><td>Maximum Value  
</td><td>bool/Variant  
</td><td>Maximum value</td></tr><tr><td>Format Text  
</td><td>String  
</td><td>The format string which includes one format specifier (beginning with %). See C printf() function.</td></tr><tr><td>Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be used.</td></tr><tr><td>Text Alignment  
</td><td>Enum (Left, Center, Right)</td><td>The horizontal text alignment, using the culture text direction, is used to define how text will be horizontally aligned within its layout area.</td></tr><tr><td>Multiline  
</td><td>bool  
</td><td>If multi line is disabled then the new line control characters will be ignored and text will always be rendered in one line.</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color which can be used from other Behaviors.</td></tr><tr><td>Disabled Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color which can be used from other Behaviors.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### Tell Tale

The TellTale Control is a often used control. It's for example used for turn light indication (blinking tell tale) or seat belt indication (static on/off tell tale) in the automotive area.

In general, a telltale is a control where two image can be defined: one for the off-state and one for the on-state. It can be set to On or Off or it can be set to blinking mode (as it is needed for the turn light indication). When in blinking mode, you can configure its behavior: for how long you want the On State Image to be displayed and for how long you want the Off State Image displayed individually.

<div drawio-diagram="5512"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711721850.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-9" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>State</td><td>Enum (On, Off, Blinking)</td><td>If set to On, sends only On value to Trigger Behaviors in the same node. If set to Off, sends only Off value to Trigger Behaviors in the same node. If set to Blinking, alternates between sending On or Off values. Use On Time Ms and Off Time Ms to specify the speed of blinking.</td></tr><tr><td>On Time Ms  
</td><td>UInt32  
</td><td>If State is set to Blinking, IntervalSwitchBehavior will be sending On value for On Time Ms milliseconds before switching to sending Off value.</td></tr><tr><td>Off Time Ms  
</td><td>UInt32  
</td><td>If State is set to Blinking, IntervalSwitchBehavior will be sending Off value for Off Time Ms milliseconds before switching to sending On value.</td></tr><tr><td>On State Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Tell Tale control displays selected image on its On state.</td></tr><tr><td>Off State Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Tell Tale control displays selected image on its Off state.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

#### Gauge

The Gauge allows to rotate a needle on a background according to its input value. Setting a value animates the rotation from the last one. The right pivot of the needle-image can be set via the pivot hint for a proper rotation. The minimum and maximum rotation can be set in the control as well as the minimum and maximum input. Further wise interpolation properties can be set.

<div drawio-diagram="5513"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711722177.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-10" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Value</td><td>Variant</td><td>Specifies the input value.</td></tr><tr><td>Input Min  
</td><td>bool/Variant  
</td><td>The smallest possible input value.</td></tr><tr><td>Input Max</td><td>bool/Variant  
</td><td>The largest possible input value.</td></tr><tr><td>Rotation Min  
</td><td>Float  
</td><td>The smallest possible angle in degrees.</td></tr><tr><td>Rotation Max  
</td><td>Float  
</td><td>The largest possible angle in degrees.</td></tr><tr><td>Background Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The background image, which might be a scale.</td></tr><tr><td>Needle Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The needle-image of the needle that will be rotated.</td></tr><tr><td>Animation Mode</td><td>  
</td><td>Animation mode sets the interpolation type (Instant, Speed-based, or Time-based).</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

---

# Container

#### GroupBox

The GroupBox offers an easy way to combine [<span style="color: rgb(230, 126, 35);">RadioButtons </span>](https://doc316en.candera.eu/link/1156#bkmrk-radiobutton)to a RadioButtonGroup. The special functionality of this Control is to select just one selection object ([<span style="color: rgb(230, 126, 35);">RadioButton</span>](https://doc316en.candera.eu/link/1156#bkmrk-radiobutton)) at the same time. So if one of the objects get selected, the others automatically get deselected.

Furthermore it is possible to set a node as default selected object.

<p class="callout info">There can also be a Layouter attached as child of the GroupBox to order the RadioButtons.</p>

The visual appearance can be configured with a background image (9Patch Image) which can be resized by using the Layout.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Default Selected Object</td><td style="height: 29.4667px;">Node</td><td style="height: 29.4667px;">Selection Object (e.g. RadioButton) which shall be selected by default.</td></tr><tr><td>Enable Background  
</td><td>bool  
</td><td>If true, Background gets rendered.</td></tr><tr><td>Background Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>Background Image of the GroupBox. Can be resized by Layout Settings of the Control.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set on the affected nodes.</td></tr></tbody></table>

# Diagnostic

#### FPS Display

The FPS Display Control provides a Text Node that displays the currently rendered frames per second, which allows to benchmark running applications.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Render Target</td><td style="height: 29.4667px;">RenderTargetType</td><td style="height: 29.4667px;">The render target which FPS should be monitored.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set.</td></tr><tr><td>Text  
</td><td>String</td><td>Text that TextBehavior will change the Node to. Supports formatting for one variable that corresponds to the value TextProcessValueBehavior2D receives.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### FrameCounterDisplay

The Frame Counter Display Control provides a Text Node that displays how many frames were already rendered.

**Properties**

<table border="1" id="bkmrk-property-name-type-d" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Render Target  
</td><td>RenderTargetType</td><td>The render target which FPS should be monitored.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set.</td></tr><tr><td>Text  
</td><td>String</td><td>Text that TextBehavior will change the Node to. Supports formatting for one variable that corresponds to the value TextProcessValueBehavior2D receives.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set.</td></tr></tbody></table>

---

#### FrameTimeDisplay

The Frame Time Display Control provides a Text Node that displays the time it takes between frames to be rendered, which allows to benchmark running applications.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-1" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Render Target</td><td style="height: 29.4667px;">RenderTargetType</td><td style="height: 29.4667px;">The render target which FPS should be monitored.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set.</td></tr><tr><td>Text  
</td><td>String</td><td>Text that TextBehavior will change the Node to. Supports formatting for one variable that corresponds to the value TextProcessValueBehavior2D receives.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### FPSDisplay3D

The FPS Display 3D Control provides a CanvasText that displays the currently rendered frames per second, which allows to benchmark running applications. This control is available for 3D scenes.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-2" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Render Target</td><td style="height: 29.4667px;">RenderTargetType</td><td style="height: 29.4667px;">The render target which FPS should be monitored.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set.</td></tr><tr><td>Text  
</td><td>String</td><td>Text that TextBehavior will change the Node to. Supports formatting for one variable that corresponds to the value TextProcessValueBehavior2D receives.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### FrameCounterDisplay3D

The Frame Counter Display 3D Control provides a CanvasText that displays how many frames were already rendered. This control is available for 3D scenes.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-4" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Render Target  
</td><td style="height: 29.4667px;">RenderTargetType</td><td>The render target which FPS should be monitored.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set.</td></tr><tr><td>Text  
</td><td>String</td><td>Text that TextBehavior will change the Node to. Supports formatting for one variable that corresponds to the value TextProcessValueBehavior2D receives.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set.</td></tr></tbody></table>

---

#### FrameTimeDisplay3D

The Frame Time Display 3D Control provides a CanvasText that displays the time it takes between frames to be rendered, which allows to benchmark running applications. This control is available for 3D scenes.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-5" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Render Target</td><td style="height: 29.4667px;">RenderTargetType</td><td style="height: 29.4667px;">The render target which FPS should be monitored.</td></tr><tr><td>Text Style  
</td><td>Candera::TextRendering::Style</td><td>The Style that will be set to the Text Node.</td></tr><tr><td>Text Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color to set.</td></tr><tr><td>Text  
</td><td>String  
</td><td>Text that TextBehavior will change the Node to. Supports formatting for one variable that corresponds to the value TextProcessValueBehavior2D receives.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

# Mixed Reality

#### VideoStream

A control that makes it possible to render a video source into a texture.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 239.867px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Video Source</td><td style="height: 29.4667px;">String</td><td style="height: 29.4667px;">URI to video resource (e.g. path to file or URL).

Please also see example strings below.

</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Scale To Video Source  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">If enabled the texture will be resized to the video size, otherwise the size of the current texture will persist.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Flip Vertically  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">Flips video vertically.</td></tr><tr style="height: 63.0667px;"><td style="height: 63.0667px;">Timestamp  
</td><td style="height: 63.0667px;">UInt32  
</td><td style="height: 63.0667px;">Can be used to bind the timestamp of the video to an external timestamp data (e.g. a camera tracker that needs to be synchronized with the video).</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Target Node  
</td><td style="height: 29.4667px;">Node</td><td style="height: 29.4667px;">The node on which the video will be displayed. If nothing is selected, the node on the anchor will be used.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set.</td></tr></tbody></table>

**Examples of valid Video Source strings**

<table border="1" id="bkmrk-source-example-video" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 14.1153%;"></col><col style="width: 85.9671%;"></col></colgroup><tbody><tr><td>**Source**  
</td><td>**Example Video Source String**  
</td></tr><tr><td>From asset  
</td><td>asset://Resources#Videos#VideoSourceSample1.mp4</td></tr><tr><td>From website  
</td><td>http://www.cgistudio.at/VideoSourceSample2.mp4</td></tr><tr><td>From file  
</td><td>file:///C:/Videos/Streaming/VideoSourceSample3.mp4</td></tr></tbody></table>

---

#### NavigationPath3D

Visualizes the proposed route of the navigation system. Input points are received via data binding. This control is available for 3D scenes.

**Properties**

<table border="1" id="bkmrk-property-name-type-d" style="border-collapse: collapse; width: 100%; height: 677.467px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Mesh Appearance</td><td style="height: 29.4667px;">AppearanceType</td><td style="height: 29.4667px;">The appearance used for the navigation path mesh.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Color Mode  
</td><td style="height: 29.4667px;">ColorMode::Enum (Color, RGBA)  
</td><td style="height: 29.4667px;">Select how color is displayed.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Color  
</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">Determines the color of the mesh.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Path Width  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Determines the width of the mesh.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Path Length  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Determines the length of the mesh.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Y Offset  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Applies y-offset to the mesh.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Input Points  
</td><td style="height: 29.4667px;">InputPointsType</td><td style="height: 29.4667px;">This property is used to bind input points.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Input Point Handling  
</td><td style="height: 29.4667px;">InputPointHandling::Enum (Attach, Replace)  
</td><td style="height: 29.4667px;">Determines how new input points are used for the mesh.</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Interpolation Type  
</td><td style="height: 46.2667px;">InterpolationType::Enum (Linear, Bezier, Spline, None)  
</td><td style="height: 46.2667px;">Determines which interpolation method is used.</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Path Mesh Type  
</td><td style="height: 46.2667px;">MeshType::Enum (Solid, Points)  
</td><td style="height: 46.2667px;">Determines which primitive type is used.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Advanced  
</td><td style="height: 29.4667px;">bool  
</td><td style="height: 29.4667px;">Enables advanced settings of the behavior. (see next 6 properties in this table)  
</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Input Point Min Distance</td><td style="height: 46.2667px;">Float</td><td style="height: 46.2667px;">Minimum distance of two control points. Input points that are closer together will be rejected.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Req Fragment Size  
</td><td style="height: 29.4667px;">SizeType  
</td><td style="height: 29.4667px;">Size of the fragment that is requested from the input point list.</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Req Threshold Distance  
</td><td style="height: 46.2667px;">Float  
</td><td style="height: 46.2667px;">If the distance between camera and the last point is below this threshold, request a new fragment of input points.</td></tr><tr style="height: 79.8667px;"><td style="height: 79.8667px;">Num Of Rows Per Input Point  
</td><td style="height: 79.8667px;">UInt32  
</td><td style="height: 79.8667px;">Determines how many vertex rows are used to interpolate between two input points. Increasing this value makes the mesh smoother, but will also shorten the distance of the overlay, as number of vertices per row remain constant.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Num Of Vertex Rows  
</td><td style="height: 29.4667px;">UInt32</td><td style="height: 29.4667px;">Amount of vertical vertices in the mesh.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Num Of Vertex Columns  
</td><td style="height: 29.4667px;">UInt32</td><td style="height: 29.4667px;">Amount of horizontal vertices in the mesh.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set.</td></tr></tbody></table>

---

#### PoiManager3D

The PoiManager handles the creation and destruction of POIs. It receives the camera position via event and uses that information to request all POIs in a certain perimeter from the model. The model responds with a list POIs from a dictionary.

For each type of POI, a custom control that serves as a template has to be created and configured with a valid Asset ID. The PoiManager can then instantiate the correct control according to the dictionary from the Asset ID as a child node. However, the PoiManager does not handle the metadata of its children, but simply forwards metadata messages to them. (For more information on metadata handling see <span style="color: rgb(230, 126, 35);">[Poi Metadata Handler](https://doc316en.candera.eu/link/639#bkmrk-poi-metadata-handler-1)</span>)

This control is available for 3D scenes.

**Properties**

<table border="1" id="bkmrk-property-name-type-d-1" style="border-collapse: collapse; width: 100%; height: 239.867px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Street Points  
</td><td>StreetPointsType  
</td><td>List of points of the street. Used to align the rotation of POIs.</td></tr><tr><td>Street Points Min Distance  
</td><td>Float  
</td><td>Minimum distance between two street points. Street points that are closer together will be rejected.</td></tr><tr><td>Req Distance  
</td><td>Float  
</td><td>The distance in which POIs are requested from the model.</td></tr><tr><td>Req Threshold Distance  
</td><td>Float  
</td><td>Once the camera has moved this specified distance a new request will be sent.</td></tr><tr><td>PoiMetaData  
</td><td>PoiMetaDataType</td><td>Use databinding to receive metadata updates for the POIs</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Poi Street Name</td><td style="height: 29.4667px;">String</td><td style="height: 29.4667px;">Name of this poi.</td></tr><tr><td>Street Control Id  
</td><td>Candera::Id  
</td><td>ID of the control that is associated with PoiName.</td></tr><tr><td>Poi Parking Name  
</td><td>String</td><td>Name of this poi.</td></tr><tr><td>Parking Control Id  
</td><td>Candera::Id</td><td>ID of the control that is associated with PoiName.</td></tr><tr><td>Poi Building Name  
</td><td>String</td><td>Name of this poi.</td></tr><tr><td>Building Control Id  
</td><td>Candera::Id</td><td>ID of the control that is associated with PoiName.</td></tr><tr><td>Blend Type  
</td><td>BlendType::Enum</td><td>The blend type that will be set.</td></tr></tbody></table>

---

#### VideoStream3D

This Control makes it possible to render a video source into a texture. The VideoStream3D Control is available for 3D scenes.

It is similar to the [<span style="color: rgb(230, 126, 35);">VideoStream </span>](https://doc316en.candera.eu/books/controls-and-behaviors/page/mixed-reality#bkmrk-videostream)Control, offering the same properties.

# Charts

#### BarGraph

Bar Graph Control is The Control that graphically displays some value depending on the length of the Bar. This is useful for visually comparing multiple values. You can set up to multiple bars on a graph. In addition, can also set a bar width, bar color and space width (between bar and bar). The value on each bar can be changed dynamically using Data Binding.

<div class="contents" id="bkmrk-the-values-for-the-b"><div class="contents"><div class="contents"><div class="textblock">- The Values for the bars are defined by a property named "Value List".
- The number of bars equals the number of items in "Value List". The maximum number of bars that can be set is 100.
- Value List can be bound via DataBinding.

</div></div></div></div><div drawio-diagram="5521"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-04/drawing-5-1712315474.png" alt=""/></div>

##### List Editor

The Values List property can also be set using <span style="color: rgb(0, 0, 0);">the List Editor. Clic</span>k on the "Select Item" icon at the right side of the Properties panel to open the **List Editor** and set the value of the bar in **Value** column. The total number of rows in **List Editor** represents the total number of bars. The bars are aligned from left to right, starting with the smallest row number.

<div drawio-diagram="5530"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-04/drawing-5-1712326795.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 21.6255%;"></col><col style="width: 31.8753%;"></col><col style="width: 46.458%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Values List</td><td style="height: 29.4667px;">ListPropertyType&lt; FeatStd::Float &gt;  
</td><td style="height: 29.4667px;">List of values</td></tr><tr><td>Bar Width  
</td><td>UInt16  
</td><td>Width of each bar</td></tr><tr><td>Bar Height  
</td><td>UInt16  
</td><td>Height of each bar</td></tr><tr><td>Space Width  
</td><td>UInt16  
</td><td>Width of space between each bar</td></tr><tr><td>Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>Color</td></tr></tbody></table>

---

#### LineGraph

Line Graph Control is The Control that draws a line graph in a coordinate area consisting of X and Y axes. This is useful for showing the transition of data increase / decrease. In addition, can also set a graph line width, line color and interpolation method between points to make the line graph more readable.

<div class="contents" id="bkmrk-supported-maximum-of"><div class="contents"><div class="contents"><div class="textblock">- Alpha channel is not used for color. (The line is always solid, not blend-able)
- Line chart only works with OpenGL – so native 2D devices are not supported

</div></div></div></div><div drawio-diagram="5524"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-04/drawing-5-1712315737.png" alt=""/></div>

##### List Editor

The Values property can also be set using the List Editor. Click on the "Select Item" icon at the right side of the Properties panel to open List Editor, and set the values for the X and Y axes. The number of rows in List Editor represents the number of plot points in the line chart.

<div drawio-diagram="5531"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-04/drawing-5-1712326814.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d" style="border-collapse: collapse; width: 100%; height: 147.334px;"><colgroup><col style="width: 21.0064%;"></col><col style="width: 35.2127%;"></col><col style="width: 43.7397%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Values</td><td style="height: 29.4667px;">ListPropertyType&lt; Candera::Vector2 &gt;</td><td style="height: 29.4667px;">List of values which will create the graph.</td></tr><tr><td>Line Width  
</td><td>Float  
</td><td>The line width defines the thickness of the line.</td></tr><tr><td>Interpolation  
</td><td>GraphInterpolationType::Enum (Linear, Spline)  
</td><td>Defines the interpolation type of the line chart.</td></tr><tr><td>Interpolation Steps  
</td><td>UInt16  
</td><td>Defines the amount of interpolation points between each value. This increases the spline resolution by the cost of performance and memory.</td></tr><tr><td>Color  
</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>Color  
</td></tr></tbody></table>

# Particle Emitters

#### PointSpriteEmitter

The PointSpriteEmitter offers an easy "out of the box" way to create a Particle Effect.

As the name suggests, the appearance of a particle is similar to a [Candera::PointSprite](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_point_sprite.html "PointSprite represents a GL point primitive. The size (glPointSize) of the point is calculated by def...")

For functionality please refer to<span style="color: rgb(230, 126, 35);"> [3D Effects Solution](https://doc316en.candera.eu/link/270#bkmrk-page-title)</span>.

<div drawio-diagram="5526"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-04/drawing-5-1712323330.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 580.801px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Emit Particles</td><td style="height: 29.4667px;">bool</td><td style="height: 29.4667px;">If set to true then the behavior will emit particles</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Emitter Type  
</td><td style="height: 46.2667px;">ParticleEmitterType::Enum (BoxEmitter, SphereEmitter)  
</td><td style="height: 46.2667px;">Specifies the behavior of the emitted Particle</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Maximum Particles  
</td><td style="height: 46.2667px;">UInt32  
</td><td style="height: 46.2667px;">Determines the maximum number of particles that can be displayed (Requires Scene Refresh)</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Particles Per Second  
</td><td style="height: 29.4667px;">UInt32  
</td><td style="height: 29.4667px;">Determines how many particles will be generated each second</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Life Time  
</td><td style="height: 29.4667px;">UInt32  
</td><td style="height: 29.4667px;">Determines how long a particle will live in Milliseconds</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Random Life Time  
</td><td style="height: 29.4667px;">UInt32  
</td><td style="height: 29.4667px;">Determines how long a particle will live in Milliseconds</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Velocity  
</td><td style="height: 29.4667px;">Candera::Vector3</td><td style="height: 29.4667px;">Determines the initial velocity of an emitted particle</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Gravity  
</td><td style="height: 29.4667px;">Candera::Vector3</td><td style="height: 29.4667px;">Determines the gravity effects for all emitted particles</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Random Spread  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Determines how the randomness of the initial velocity angle</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Start Size  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Determines how big a particle will be when it is emitted</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">End Size  
</td><td style="height: 29.4667px;">Float  
</td><td style="height: 29.4667px;">Determines how big a particle will be when it vanishes</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Start Color  
</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">Determines what color a particle has be when it is emitted</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">End Color  
</td><td style="height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 29.4667px;">Determines what color a particle has when it vanishes</td></tr><tr style="height: 46.2667px;"><td style="height: 46.2667px;">Fade In Time  
</td><td style="height: 46.2667px;">bool/UInt32  
</td><td style="height: 46.2667px;">Determines how long a new particle needs to be alive until it is fully visible.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Fade Out Time  
</td><td style="height: 29.4667px;">bool/UInt32  
</td><td style="height: 29.4667px;">Determines how long a particle will fade out before it vanishes</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Appearance  
</td><td style="height: 29.4667px;">AppearanceType</td><td style="height: 29.4667px;">The appearance to set on the node.</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Blend Type  
</td><td style="height: 29.4667px;">BlendType::Enum</td><td style="height: 29.4667px;">The blend type that will be set.</td></tr></tbody></table>

# Core

The Core Controls are a set of [Controls](https://doc316en.candera.eu/books/controls-and-behaviors/chapter/predefined-controls "Predefined Controls"), designed to provide a minimal core set of functionality. Therefore, the Core Controls also reduce their size and provide increased performance, by limiting its feature set and reducing the number of used behaviors.

The Core Controls are designed for

- **Low-End Platforms**  
    Low memory footprint and increased performance by reduced feature set
- **Basis for custom Controls**  
    As the Core Controls cover basic features, it is easy possible to extend them for custom behavior (e.g. a specific custom behavior for a custom button) instead of stripping down a full featured Control

Please note, that the not all Controls have a Core Control variant, as it is not suitable for all available Controls.

#### CoreDial

This control is used to set values within a specified range. Rotating the knob changes the value and updates the corresponding display. The degree of rotation is adjusted according to the configured Step Size and snaps to predefined positions. The knob's state is represented by displaying an image from the BackgroundImages list corresponding to the current value. For example, in a three-step rotation setup where the minimum rotation is -45 degrees, the maximum rotation is +45 degrees, and the step size is 45 degrees, three BackgroundImages need to be assigned. Additionally, values can be adjusted using specified keyboard keys (Increment Key Code, Decrement Key Code).

In the Core version, focus and color blending functionalities are not included, and the design is specialized for basic rotational operations.

<div drawio-diagram="7972"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739774950.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-4" style="border-collapse: collapse; width: 100%; height: 428px;"><colgroup><col style="width: 25.0298%;"></col><col style="width: 25.0298%;"></col><col style="width: 50.0596%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">**Property Name**  
</td><td style="height: 29.6px;">**Type**  
</td><td style="height: 29.6px;">**Description**  
</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Enabled</td><td style="height: 46.4px;">bool</td><td style="height: 46.4px;">If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td style="height: 46.5938px;">Focusable  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Current Value  
</td><td style="height: 29.6px;">FeatStd::Int32</td><td style="height: 29.6px;">Current value for the dial.  
</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Step Size  
</td><td style="height: 29.6px;">FeatStd::Float</td><td style="height: 29.6px;">Step size in degrees.  
</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Minimum Rotation  
</td><td style="height: 29.6px;">FeatStd::Float</td><td style="height: 29.6px;">Minimum rotation of the dial.  
</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Maximum Rotation  
</td><td style="height: 29.6px;">FeatStd::Float</td><td style="height: 29.6px;">Maximum rotation of the dial.  
</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Knob Image  
</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image to set on the effect.  
</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">BackgroundImages  
</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">A list of images which should be available for selection.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Disabled Color  
</td><td style="height: 35.2px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.2px;">The color which can be used from other Behaviors.  
</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Increment Key Code  
</td><td style="height: 46.4px;">Candera::KeyboardKeyCode::Enum</td><td style="height: 46.4px;">Check the KeyCode of the pressed key (can also be modifier).  
</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Decrement Key Code  
</td><td style="height: 46.4px;">Candera::KeyboardKeyCode::Enum</td><td style="height: 46.4px;">Check the KeyCode of the pressed key (can also be modifier).

</td></tr></tbody></table>

#### CoreRoll

CoreRoll is a control that provides an interface for displaying numeric values as a vertical list within a defined range, allowing users to select or change values. The current value is emphasized in the center "lens" area. An option for changing via touch, pointer is kept, but the keyboard input has been removed to optimize the control. It is optimized for lightweight and intuitive UI implementations that focus on numeric display and selection. Essential visual customizations, such as color, font style, lens display control, and unit text settings, are retained.

<div drawio-diagram="8458"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-06/drawing-4-1749888897.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-12" style="border-collapse: collapse; width: 100%; height: 1076.93px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Focusable  
</td><td style="width: 28.9203%; height: 46.2667px;">bool  
</td><td style="width: 49.5716%; height: 46.2667px;">If true, the control is focusable. Otherwise the control cannot be focused.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Value</td><td style="width: 28.9203%; height: 29.4667px;">Float</td><td style="width: 49.5716%; height: 29.4667px;">The value which will be changed using the roll</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Min</td><td style="width: 28.9203%; height: 46.2667px;">Float</td><td style="width: 49.5716%; height: 46.2667px;">The minimum value which can be reached. This value is always smaller or equal to the MaxValue.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Max</td><td style="width: 28.9203%; height: 46.2667px;">Float</td><td style="width: 49.5716%; height: 46.2667px;">The maximum value which can be reached. This value is always bigger or equal to MinValue</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Step</td><td style="width: 28.9203%; height: 29.4667px;">Float</td><td style="width: 49.5716%; height: 29.4667px;">The increment/decrement of the value.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">LensVisible</td><td style="width: 28.9203%; height: 46.2667px;">bool</td><td style="width: 49.5716%; height: 46.2667px;">Is lens group visible? Enables highlighting of the current value, default zooming and bordering it.   
</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Use Cyclic Roll</td><td style="width: 28.9203%; height: 46.2667px;">bool</td><td style="width: 49.5716%; height: 46.2667px;">Is roll cyclic? If true the MinValue of the Control can be reached after the MaxValue of the Control and vice versa</td></tr><tr style="height: 124.667px;"><td style="width: 21.508%; height: 124.667px;">Allow Dragging Past Limit</td><td style="width: 28.9203%; height: 124.667px;">bool</td><td style="width: 49.5716%; height: 124.667px;">Allow temporary over-dragging (dragging to blank values before first and after last entry).

If true there is visible animation of the Control being „out of range“ while moving below minimum and above maximum value.

</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Value Style</td><td style="width: 28.9203%; height: 29.4667px;">Candera::TextRendering::Style</td><td style="width: 49.5716%; height: 29.4667px;">Sets the text style for the values outside the Lens.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Value Color</td><td style="width: 28.9203%; height: 46.2667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.5716%; height: 46.2667px;">Specifies color of values in the vertical list outside the Lens</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Lens Style</td><td style="width: 28.9203%; height: 29.4667px;">Candera::TextRendering::Style</td><td style="width: 49.5716%; height: 29.4667px;">Sets the text style for the values inside the Lens.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.508%; height: 46.2667px;">Unit Text</td><td style="width: 28.9203%; height: 46.2667px;">String</td><td style="width: 49.5716%; height: 46.2667px;">Text used in lens (it means: when the lens is used at all) to present a unit of the value</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Unit Style</td><td style="width: 28.9203%; height: 29.4667px;">Candera::TextRendering::Styler</td><td style="width: 49.5716%; height: 29.4667px;">Sets the text style for the Unit Text.</td></tr><tr style="height: 35.0667px;"><td style="width: 21.508%; height: 35.0667px;">Unit Margin</td><td style="width: 28.9203%; height: 35.0667px;">[Candera::Margin](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_margin.html "A non-zero margin applies space outside the element layout's width and height. The values can be set ...")</td><td style="width: 49.5716%; height: 35.0667px;">Specifies margin of the UnitText</td></tr><tr style="height: 29.4667px;"><td style="width: 21.508%; height: 29.4667px;">Unit Color</td><td style="width: 28.9203%; height: 29.4667px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="width: 49.5716%; height: 29.4667px;">Specifies color of the UnitText</td></tr><tr style="height: 35.0667px;"><td style="width: 21.508%; height: 35.0667px;">Decoration Image</td><td style="width: 28.9203%; height: 35.0667px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="width: 49.5716%; height: 35.0667px;">Specifies a border image of the Lens</td></tr></tbody></table>


#### CoreSpinBox

CoreSpinBox is a control that allows users to increment or decrement numeric values using up/down arrow buttons. The values can be modified via the arrow buttons only and The option for changing the values via keyboard inputs has been removed to optimize the control, with support for basic parameters such as minimum, maximum, and step size.  
This control prioritizes simplified visual presentation and user interaction. Compared to <span style="color: rgb(230, 126, 35);">[SpinBox](https://doc316en.candera.eu/link/1156#bkmrk-spinbox)</span>, it is more lightweight and suited for cases where UI performance and streamlined layout are important.

<div drawio-diagram="8459"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-06/drawing-4-1749888908.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-13" style="border-collapse: collapse; width: 100%; height: 836.453px;"><colgroup><col style="width: 24.9106%;"></col><col style="width: 29.4398%;"></col><col style="width: 45.6496%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Property Name**  
</td><td style="height: 29.7969px;">**Type**  
</td><td style="height: 29.7969px;">**Description**</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;">Enabled  
</td><td style="height: 63.3906px;">bool  
</td><td style="height: 63.3906px;">If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Focusable  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Value  
</td><td style="height: 29.7969px;">Variant</td><td style="height: 29.7969px;">The value to be formatted</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Step Size  
</td><td style="height: 29.7969px;">Variant  
</td><td style="height: 29.7969px;">Increment/Decrement step value.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Minimum Value  
</td><td style="height: 29.7969px;">Variant</td><td style="height: 29.7969px;">Minimum value</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Maximum Value  
</td><td style="height: 29.7969px;">Variant</td><td style="height: 29.7969px;">Maximum value</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Text Format  
</td><td style="height: 46.5938px;">String  
</td><td style="height: 46.5938px;">The format string which includes one format specifier (beginning with %). See C printf() function.</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;">Text Alignment  
</td><td style="height: 63.3906px;">Enum (Left, Centered, Right, Automatic)</td><td style="height: 63.3906px;">The horizontal text alignment, using the culture text direction, is used to define how text will be horizontally aligned within its layout area.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Multiline</td><td style="height: 29.7969px;">bool</td><td style="height: 29.7969px;">If multi line is disabled then the new line control characters will be ignored and text will always be rendered in one line.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Text Color  
</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.3906px;">Text color.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Text Disabled Color  
</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.3906px;">Disabled text color.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Text Style  
</td><td style="height: 29.7969px;">Candera::TextRendering::Style</td><td style="height: 29.7969px;">The Style that will be used.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Background Image  
</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)  
</td><td style="height: 35.3906px;">The image to set on the effect.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Arrow Image  
</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td class="xl67" height="18" style="height: 13.2pt; width: 253pt;" width="337">The increment/Decrement button arrow image.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Pressed Image  
</td><td style="height: 35.3906px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td class="xl67" height="18" style="height: 13.2pt; border-top: none; width: 253pt;" width="337">The increment/Decrement button pressed image.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Arrow Disabled Image

</td><td style="height: 35.3906px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td class="xl67" height="18" style="height: 13.2pt; border-top: none; width: 253pt;" width="337">The increment/Decrement button disabled arrow image.</td></tr></tbody></table>

---

#### <span style="color: rgb(0, 0, 0);">CoreText</span>

Displays a given text like a label. It supports properties to set the Text, Text Style, Text Color. A Bindable Property is provided to set the Text by Data Binding. And Supports language translation.

<div drawio-diagram="7975"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1740025088.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-2" style="width: 100%;"><colgroup><col style="width: 17.3975%;"></col><col style="width: 20.25%;"></col><col style="width: 62.3286%;"></col></colgroup><tbody><tr><td>**Property Name**  
</td><td>**Type**  
</td><td>**Description**  
</td></tr><tr><td>Text</td><td>String</td><td>The Text that will be set to the Text Node.</td></tr><tr><td>Text Color</td><td>[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td>The color of the text.</td></tr><tr><td>Text Style</td><td>Candera::TextRendering::Style</td><td>The Text that will be set to the Text Node.</td></tr></tbody></table>

#### <span style="color: rgb(0, 0, 0);">CoreButton</span>

Defines the basic states of a button and the actions executed when clicked. The button's appearance is determined by setting different images for each state. Additionally, text, icons, and other content can be placed inside the button, and spacing between the content and the button can be adjusted. However, the Core version does not include advanced visual effects or focus-related features.

<div drawio-diagram="7964"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739766300.png" alt=""/></div>


**Properties**

<table border="1" id="bkmrk-property-name-type-d" style="width: 100%;"><colgroup><col style="width: 22.0501%;"></col><col style="width: 24.9106%;"></col><col style="width: 53.0393%;"></col></colgroup><tbody><tr><td>**Property Name**  
</td><td>**Type**  
</td><td>**Description**  
</td></tr><tr><td>Enabled  
</td><td>bool  
</td><td>If this option is set to false, the button will be disabled and will no longer accept clicks.</td></tr><tr><td style="height: 46.5938px;">Focusable  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td>Normal Image</td><td>9 Patch Image</td><td>The image used as the button image.</td></tr><tr><td>Pressed Image</td><td>9 Patch Image</td><td>The image used as the button image when the pressed state is applied.  
</td></tr><tr><td>Disabled Image</td><td>9 Patch Image</td><td>The button image displayed when the button is disabled.</td></tr><tr><td>Padding</td><td>[Candera::Margin](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_margin.html "A non-zero margin applies space outside the element layout's width and height. The values can be set ...")</td><td>The padding (margin) of the button. Used when content is attached.</td></tr><tr><td>Identifier</td><td>Candera::AbstractNodePointer</td><td>The identifier used when an event such as Click Event occurs.</td></tr></tbody></table>

#### <span style="color: rgb(0, 0, 0);">CoreDigitalClock</span>

Represents a digital clock, whereas the time-values (hours, minutes, seconds) are rendered as text. A data-bound value from the player can be used to represent the current time. The control offers properties to customize the clock, like showing the hours in 12h.

<div drawio-diagram="7971"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739766594.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-5" style="border-collapse: collapse; width: 100%; height: 502.922px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Property Name**  
</td><td style="height: 29.7969px;">**Type**  
</td><td style="height: 29.7969px;">**Description**  
</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Time</td><td style="height: 46.5938px;">Variant</td><td style="height: 46.5938px;">Specifies the type and the value to pass onto Process Value Behavior.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">AM Text  
</td><td style="height: 29.7969px;">String  
</td><td style="height: 29.7969px;">The string of the AM label.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">PM Text  
</td><td style="height: 29.7969px;">String  
</td><td style="height: 29.7969px;">The string of the PM label.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Show Seconds  
</td><td style="height: 29.7969px;">bool  
</td><td style="height: 29.7969px;">If true, seconds will be shown.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Show AMPM</td><td style="height: 29.7969px;">bool</td><td style="height: 29.7969px;">If ture, shows AM or PM depending on time.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Hours Text Style  
</td><td style="height: 29.7969px;">Candera::TextRendering::Style</td><td style="height: 29.7969px;">The style set for the “hour” text.</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Minutes Colon Text Style  
</td><td style="height: 46.5938px;">Candera::TextRendering::Style</td><td style="height: 46.5938px;">The style applied to the separator between the “hour” and “minute” text.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Minutes Text Style  
</td><td style="height: 29.7969px;">Candera::TextRendering::Style</td><td style="height: 29.7969px;">The style set for the “minute” text.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Seconds Text Style  
</td><td style="height: 29.7969px;">Candera::TextRendering::Style</td><td style="height: 29.7969px;">The style set for the “second” text.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">AMPM Text Style  
</td><td style="height: 29.7969px;">Candera::TextRendering::Style</td><td style="height: 29.7969px;">The style set for the AM/PM text.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Hours Color  
</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 35.3906px;">The color set for the “hour” text.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Minutes Color  
</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 35.3906px;">The color set for the “minute” text.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">Seconds Color  
</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 35.3906px;">The color set for the “second” text.</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">AM PM Color</td><td style="height: 35.3906px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</td><td style="height: 35.3906px;">The color set for the AM/PM text.</td></tr></tbody></table>

#### CoreProgressBar

Represents a bar that changes size according to the input value. It is possible to set background and bar images, with a 9-patch image recommended for the bar. In the Core version, animation for value changes is not included, focusing solely on simple progress display functionality.

<div drawio-diagram="5510"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711719428.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-6" style="border-collapse: collapse; width: 100%; height: 176.8px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 24.9588%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**  
</td></tr><tr><td>Value</td><td>Float</td><td>The current value of the Progress Bar.</td></tr><tr><td>Minimum  
</td><td>bool/Variant  
</td><td>Minimum value</td></tr><tr><td>Maximum  
</td><td>bool/Variant  
</td><td>Maximum value</td></tr><tr><td>Bar Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The image of the Progress Bar that will be scaled.</td></tr><tr><td>Background Image  
</td><td>[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td>The background image of the Progress Bar.</td></tr></tbody></table>

#### <span style="color: rgb(0, 0, 0);">CoreTextButton  
</span>

Defines the basic behavior of a button and the actions executed when clicked. In the Core version, visual customization features are limited, and the button's appearance is determined by the specified image and text. Properties are provided to adjust the display and style of the text. The button's behavior when pressed can be easily configured using the EventHandler.

<div drawio-diagram="7966"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739766412.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-15" style="width: 100%; height: 439.2px;"><colgroup><col style="width: 20.5006%;"></col><col style="width: 17.1633%;"></col><col style="width: 62.3361%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">**Property Name**  
</td><td style="height: 29.6px;">**Type**  
</td><td style="height: 29.6px;">**Description**</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Enabled  
</td><td style="height: 46.4px;">bool  
</td><td style="height: 46.4px;">If this option is set to false, the button will be disabled and will no longer accept clicks.</td></tr><tr><td style="height: 46.5938px;">Focusable  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Normal Image  
</td><td style="height: 46.4px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 46.4px;">The image displayed when the button is in its normal state.

</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Pressed Image  
</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image displayed when the button is pressed.</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Disabled Image</td><td style="height: 29.6px;">9 Patch Image</td><td style="height: 29.6px;">The image displayed when the button is disabled.</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Text  
</td><td style="height: 29.6px;">String  
</td><td style="height: 29.6px;">Text to be displayed in the button.</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Text Style  
</td><td style="height: 46.4px;">Candera::TextRendering::Style</td><td style="height: 46.4px;">Set the style of the text.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Text Enabled Color  
</td><td style="height: 35.2px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.2px;">Text to be set in the text node.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Text Disabled Color  
</td><td style="height: 35.2px;">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html)</td><td style="height: 35.2px;">Text color when disabled.</td></tr></tbody></table>

#### <span style="color: rgb(0, 0, 0);">CoreCheckBox</span>

A simple UI element that indicates the selection status. In the Core version, the normal and selected states can be configured using a combination of text and images. The behavior when the state of this control changes can be set using the EventHandler.  
Note that features related to Focus and Blend effects are not included.

<div drawio-diagram="7967"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739766439.png" alt=""/></div>

<span style="color: rgb(0, 0, 0);">**Properties**</span>

<table border="1" id="bkmrk-property-name-type-d-16" style="width: 100%; height: 429.719px;"><colgroup><col style="width: 19.6663%;"></col><col style="width: 21.0965%;"></col><col style="width: 59.2372%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">**Property Name**</span>  
</td><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">**Type**</span>  
</td><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">**Description**</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">Enabled</span>  
</td><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">bool</span>  
</td><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">If this option is set to false, the checkbox will </span><span style="color: rgb(0, 0, 0);">not respond to clicks.  
</span>

</td></tr><tr style="height: 23.5938px;"><td style="height: 23.5938px;">Focusable  
</td><td style="height: 23.5938px;">bool  
</td><td style="height: 23.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Value</span>  
</td><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">bool/Variant</span>  
</td><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Specifies the initial selection state of the checkbox (true = selected, false = not selected).</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">Text</span>  
</td><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">String</span>  
</td><td style="height: 29.7969px;"><span style="color: rgb(0, 0, 0);">The text of the checkbox.</span></td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Text Style</span>  
</td><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Candera::TextRendering::Style</span></td><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">The style set for the text node.</span></td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">Normal Image</span>  
</td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">The checkbox image displayed when in the normal state.</span></td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">Selected Image</span>  
</td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">The checkbox image displayed when in the selected state.</span></td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">Normal Disabled Image</span>  
</td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">The checkbox image displayed when in the invalid state.</span>

</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Selected Disabled Image</span>  
</td><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 46.5938px;"><span style="color: rgb(0, 0, 0);">The image of a selected checkbox in the invalid state.</span></td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">Normal Text Color</span></td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">The text color when in the valid state.</span></td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">Disabled Text Color</span></td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 35.3906px;"><span style="color: rgb(0, 0, 0);">The text color when in the invalid state.</span></td></tr></tbody></table>

#### <span style="color: rgb(0, 0, 0);">CoreToggleButton</span>

A simple UI element that toggles the button state. It is typically used to enable or disable specific functions. The structure is simple, allowing you to configure two images corresponding to the ON/OFF states of the toggle and their associated text. The behavior when the button is clicked can be set in the EventHandler tab. Note that features related to Focus and Blend effects are not included.

<div drawio-diagram="7968"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739766464.png" alt=""/></div>

<span style="color: rgb(0, 0, 0);">**Properties**</span>

<table border="1" id="bkmrk-property-name-type-d-17" style="width: 100%; height: 454.4px;"><colgroup><col style="width: 22.1692%;"></col><col style="width: 22.646%;"></col><col style="width: 55.1847%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;"><span style="color: rgb(0, 0, 0);">**Property Name**</span>  
</td><td style="height: 29.6px;"><span style="color: rgb(0, 0, 0);">**Type**</span>  
</td><td style="height: 29.6px;"><span style="color: rgb(0, 0, 0);">**Description**</span></td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">Enabled</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">bool</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">If this option is set to disabled, the toggle button will be disabled and will no longer accept click operations.</span></td></tr><tr><td style="height: 46.5938px;">Focusable  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;"><span style="color: rgb(0, 0, 0);">Value</span>  
</td><td style="height: 29.6px;"><span style="color: rgb(0, 0, 0);">bool/Variant</span>  
</td><td style="height: 29.6px;"><span style="color: rgb(0, 0, 0);">Specify the initial state of the toggle (true = enabled, false = disabled).</span></td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">First Text</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">String</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">The text that will be displayed when the toggle is set to On (the first toggle image).</span></td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">Second Text</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">String</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">The text that will be displayed when the toggle is set to Off (the second toggle image).</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Text Style</span>  
</td><td><span style="color: rgb(0, 0, 0);">Candera::TextRendering::Style</span></td><td><span style="color: rgb(0, 0, 0);">The style set for the text node.</span></td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">First Image</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">The image that will be displayed when the toggle is set to On (the first toggle image).</span></td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">Second Image</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">The image displayed when the toggle is in the Off state (second toggle image).</span></td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">First Disabled Image</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">The image displayed when the toggle is in the On state when it is disabled.</span></td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">Second Disabled Image</span>  
</td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 46.4px;"><span style="color: rgb(0, 0, 0);">The image displayed when the toggle is in the Off state when it is disabled.</span></td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;"><span style="color: rgb(0, 0, 0);">Text Enabled Color</span></td><td style="height: 35.2px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 35.2px;"><span style="color: rgb(0, 0, 0);">The text color when it is enabled.</span></td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;"><span style="color: rgb(0, 0, 0);">Text Disabled Color</span></td><td style="height: 35.2px;"><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td style="height: 35.2px;"><span style="color: rgb(0, 0, 0);">The text color when it is disabled.</span></td></tr></tbody></table>



#### <span style="color: rgb(0, 0, 0);">CoreRadioButton</span>

A simple UI element that allows the user to select one option from multiple choices. In the Core version, the normal and selected states can be configured using a combination of text and images. The behavior when the state of the CoreRadioButton control changes can be set using the EventHandler.

The functionality of the CoreRadioButton is similar to that of the CoreCheckBox, but it is designed to allow only one selection among multiple options.

<div drawio-diagram="7969"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739766490.png" alt=""/></div>

<span style="color: rgb(0, 0, 0);">**Properties**</span>

<table border="1" id="bkmrk-property-name-type-d-18" style="width: 100%;"><colgroup><col style="width: 19.9046%;"></col><col style="width: 25.8641%;"></col><col style="width: 54.2312%;"></col></colgroup><tbody><tr><td><span style="color: rgb(0, 0, 0);">**Property Name**</span>  
</td><td><span style="color: rgb(0, 0, 0);">**Type**</span>  
</td><td><span style="color: rgb(0, 0, 0);">**Description**</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Enabled</span>  
</td><td><span style="color: rgb(0, 0, 0);">bool</span>  
</td><td><span style="color: rgb(0, 0, 0);">If you set this option to disabled, the radio buttons will not work and will not accept clicks.</span></td></tr><tr><td style="height: 46.5938px;">Focusable  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr><td><span style="color: rgb(0, 0, 0);">Text</span>  
</td><td><span style="color: rgb(0, 0, 0);">String</span>  
</td><td><span style="color: rgb(0, 0, 0);">The text of the radio buttons.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">TextStyle</span>  
</td><td><span style="color: rgb(0, 0, 0);">Candera::TextRendering::Style</span></td><td><span style="color: rgb(0, 0, 0);">Set the style of the text.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Normal Image</span>  
</td><td><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td><span style="color: rgb(0, 0, 0);">The image of the radio buttons displayed in the normal state.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Selected Image</span>  
</td><td><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td><span style="color: rgb(0, 0, 0);">The image of the radio buttons displayed when selected.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Normal Disabled Image</span>  
</td><td><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td><span style="color: rgb(0, 0, 0);">The image of the normal radio buttons in the disabled state.</span>

</td></tr><tr><td><span style="color: rgb(0, 0, 0);">Selected Disabled Image</span>  
</td><td><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td><span style="color: rgb(0, 0, 0);">The image of the selected radio buttons in the disabled state.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Text Enabled Color</span></td><td><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td><span style="color: rgb(0, 0, 0);">The color of the text in the enabled state.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Text Disabled Color</span></td><td><span style="color: rgb(0, 0, 0);">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</span></td><td><span style="color: rgb(0, 0, 0);">The color of the text in the disabled state.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Selected</span>  
</td><td><span style="color: rgb(0, 0, 0);">bool/Variant</span>  
</td><td>Specify the type and value to pass to the Process Value behavior.</td></tr></tbody></table>


#### <span style="color: rgb(0, 0, 0);">CoreTextValue</span>

Generates a formatted string by combining Value and Format Text. It supports formatting numbers and text in a manner similar to the C++ printf() function. The value can be set directly or modified through events. Events are provided through behaviors that send or transfer values.

<div drawio-diagram="7970"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739766548.png" alt=""/></div>

<span style="color: rgb(0, 0, 0);">**Properties**</span>

<table border="1" id="bkmrk-property-name-type-d-8" style="width: 100%;"><colgroup><col style="width: 16.9209%;"></col><col style="width: 25.6165%;"></col><col style="width: 57.4388%;"></col></colgroup><tbody><tr><td><span style="color: rgb(0, 0, 0);">**Property Name**</span>  
</td><td><span style="color: rgb(0, 0, 0);">**Type**</span>  
</td><td><span style="color: rgb(0, 0, 0);">**Description**</span>  
</td></tr><tr><td><span style="color: rgb(0, 0, 0);">Value</span></td><td><span style="color: rgb(0, 0, 0);">Variant</span></td><td><span style="color: rgb(0, 0, 0);">The value to be formatted</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Format Text</span>  
</td><td><span style="color: rgb(0, 0, 0);">String</span>  
</td><td><span style="color: rgb(0, 0, 0);">The format string which includes one format specifier (beginning with %). See C printf() function.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Style</span>  
</td><td><span style="color: rgb(0, 0, 0);">Candera::TextRendering::Style</span></td><td><span style="color: rgb(0, 0, 0);">The style of the text to be used.</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Text Color</span>  
</td><td><span style="color: rgb(0, 0, 0);">[Candera::Color](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_color.html "Represents a color by its red-, green-, blue- and alpha-value. Provides color arithmetic functions an...")</span></td><td><span style="color: rgb(0, 0, 0);">Specify the color of the text.</span></td></tr></tbody></table>

#### CoreSlider

This is a control where the value changes based on the position of the knob. The knob can be operated by dragging, and values can be set directly or modified through events (e.g., using the Send Value as Event Behavior).

In the Core version, focus and blend effect functionalities are not included, and the design is specialized for basic slider operations.

<div drawio-diagram="5497"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-03/drawing-5-1711110887.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-20" style="border-collapse: collapse; width: 100%; height: 630.2px;"><colgroup><col style="width: 25.0298%;"></col><col style="width: 29.4398%;"></col><col style="width: 45.6496%;"></col></colgroup><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">**Property Name**  
</td><td style="height: 29.6px;">**Type**  
</td><td style="height: 29.6px;">**Description**</td></tr><tr style="height: 63.2px;"><td style="height: 63.2px;">Enabled</td><td style="height: 63.2px;">bool</td><td style="height: 63.2px;">If set to false it will not react on focus events and does not have to support different visualizations for the different states.</td></tr><tr><td style="height: 46.5938px;">Focusable  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Value  
</td><td style="height: 29.6px;">Variant  
</td><td style="height: 29.6px;">The bindable value of the slider</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Minimum  
</td><td style="height: 29.6px;">bool/Variant  
</td><td style="height: 29.6px;">Minimum Range</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Maximum  
</td><td style="height: 29.6px;">bool/Variant  
</td><td style="height: 29.6px;">Maximum Range</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Track Image  
</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image used for the slider track.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Track Disabled Image</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image used for the slider track when disabled.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Track Fill Image  
</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image indicating the progress of the slider.</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Track Disabled Fill Image</td><td style="height: 46.4px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 46.4px;">The image indicating the progress of the slider when disabled.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Knob Normal Image  
</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image used for the knob in its normal state.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Knob Pressed Image  
</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image used for the knob when pressed.</td></tr><tr style="height: 35.2px;"><td style="height: 35.2px;">Knob Disabled Image</td><td style="height: 35.2px;">[Candera::Image2D](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_image2_d.html "Image2D encapsulates a surface handle which is retrieved when uploading an image.")</td><td style="height: 35.2px;">The image used for the knob when disabled.</td></tr><tr style="height: 80px;"><td style="height: 80px;">Knob Center Margin  
</td><td style="height: 80px;">Candera::Margin</td><td style="height: 80px;">The center margin of the knob. Used to position the knob around the slider value. To avoid clipping issues in standalone sliders, ensure that the margin does not exceed the boundary.</td></tr><tr style="height: 47.2px;"><td style="height: 47.2px;">Track Margin

</td><td style="height: 47.2px;">Candera::Margin</td><td style="height: 47.2px;">The margin of the track. Ensures sufficient space for displaying the knob around the track.

</td></tr><tr style="height: 63.8px;"><td style="height: 63.8px;">Use Center  
</td><td style="height: 63.8px;">bool  
</td><td style="height: 63.8px;">If set to true, the knob's alignment is based on its predefined center value in the bitmap. If false, a calculated center value is used.

</td></tr></tbody></table>

#### CoreScrollView

UI component that provides a scrollable area where arbitrary nodes (including controls) can be placed. If the attached node's size exceeds the layout size of the ScrollView, a scrollbar is automatically displayed.

In the Core version, node layout functionality is not included, and the component is specialized for displaying scrollable content. Therefore, automatic alignment features like those found in lists are not provided, but freely positioned controls and nodes can be made scrollable.

<div drawio-diagram="7973"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739775073.png" alt=""/></div>

<div drawio-diagram="5499"></div>


**Properties**

<table border="1" id="bkmrk-property-name-type-d-21" style="border-collapse: collapse; width: 100%; height: 58.9334px;"><colgroup><col style="width: 24.9588%;"></col><col style="width: 29.4069%;"></col><col style="width: 45.5931%;"></col></colgroup><tbody><tr style="height: 29.4667px;"><td style="height: 29.4667px;">**Property Name**  
</td><td style="height: 29.4667px;">**Type**  
</td><td style="height: 29.4667px;">**Description**</td></tr><tr style="height: 29.4667px;"><td style="height: 29.4667px;">Vertical Scrollbar Visibility</td><td style="height: 29.4667px;">ScrollbarVisibility::Enum (Automatic, Collapsed, Visible)</td><td style="height: 29.4667px;">Configure the visibility of the scrollbar. By default it is set to Automatic which will determine the visibility based on the actual content.</td></tr><tr><td>Horizontal Scrollbar Visibility  
</td><td>ScrollbarVisibility::Enum (Automatic, Collapsed, Visible)</td><td>Configure the visibility of the scrollbar. By default it is set to Automatic which will determine the visibility based on the actual content.</td></tr></tbody></table>

#### <span style="color: rgb(0, 0, 0);">CoreMultiStateButton</span>


A UI element that allows for the easy definition of buttons with multiple states. Each click changes the state, and once the maximum value is reached, it loops back to the initial state. The corresponding image is selected based on the button's state, and the displayed text can also be modified using the Text property. The behavior of the MultiStateButton can be set in the EventHandler, and actions corresponding to the current state can be executed using the Process Value Changed Event behavior.

<div drawio-diagram="7974"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-4-1739943004.png" alt=""/></div>

**Properties**

<table border="1" id="bkmrk-property-name-type-d-23" style="width: 100%; height: 107.984px;"><colgroup><col style="width: 18.3552%;"></col><col style="width: 18.1168%;"></col><col style="width: 63.528%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Property Name**  
</td><td style="height: 29.7969px;">**Type**  
</td><td style="height: 29.7969px;">**Description**</td></tr><tr style="height: 18.5938px;"><td style="height: 18.5938px;">Focusable  
</td><td style="height: 18.5938px;">bool  
</td><td style="height: 18.5938px;">If true, the control is focusable. Otherwise the control can not be focused.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Current State  
</td><td style="height: 29.7969px;">Variant  
</td><td style="height: 29.7969px;">Current state of the MultiStateButton (starts with 0).</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Maximum State  
</td><td style="height: 29.7969px;">bool/Variant  
</td><td style="height: 29.7969px;">Maximum value of MultiStateButton (starts with 0).</td></tr></tbody></table>

# Navigation

#### TurnByTurn Control

The TurnByTurn Control is designed as an overlay to provide information about the distance to the next turn in the following way:

- **Absolute distance**
    - Value and unit of absolute distance to the next turn, the value gets automatically rounded to the next 10.
- **Relative distance**
    - Bargraph indicating the distance to the next turn from 100 to 0. The colour of the bargraph can be changed if the next turn gets close.
- **Street name**
    - Name of the street related to the next turn
- **Direction icon**
    - Icon to indicate the type of the next turn

<div drawio-diagram="8653"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-11/drawing-4-1762219701.png" alt=""/></div>

##### **Properties**

<table border="1" id="bkmrk-property-name-type-d-3" style="border-collapse: collapse; width: 100%; height: 700.516px;"><colgroup><col style="width: 24.9106%;"></col><col style="width: 24.9106%;"></col><col style="width: 50.1788%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Property Name**  
</td><td style="height: 29.7969px;">**Type**  
</td><td style="height: 29.7969px;">**Description**  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Show Street Name</td><td style="height: 29.7969px;">bool</td><td style="height: 29.7969px;">Whether or not the street name is shown</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Show Relative Indication  
</td><td style="height: 46.5938px;">bool  
</td><td style="height: 46.5938px;">Whether or not the bargraph indicating the relative distance to next turn is shown</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Show Absolute Indication</td><td style="height: 46.5938px;">bool</td><td style="height: 46.5938px;">Whether or not the absolute value for the distance to the next turn is shown</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Text Style</td><td style="height: 29.7969px;">TextStyle</td><td style="height: 29.7969px;">The text style of street and distance value</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Text Style Unit</td><td style="height: 29.7969px;">TextStyle</td><td style="height: 29.7969px;">The text style of the distance unit</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Street Name</td><td style="height: 29.7969px;">String</td><td style="height: 29.7969px;">Street name</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Distance To Turn</td><td style="height: 46.5938px;">UInt32</td><td style="height: 46.5938px;">Absolute distance to the next turn, the value is automatically rounded to the nearest 10.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Relative Distance Value</td><td style="height: 29.7969px;">Float in range \[0, 100\]</td><td style="height: 29.7969px;">Relative distance to the next turn, indicated by the bargraph</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Distance Unit Text</td><td style="height: 29.7969px;">String</td><td style="height: 29.7969px;">Unit of the absolute value</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Direction Icon Index</td><td style="height: 29.7969px;">UInt8</td><td style="height: 29.7969px;">Index of direction icons, see also Direction Images</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Direction Images</td><td style="height: 46.5938px;">Array of Images</td><td style="height: 46.5938px;">Array of turn by turn icons, the displayed icon is set via the "Direction Icon Index" property</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Total Bargraph Size</td><td style="height: 29.7969px;">Float</td><td style="height: 29.7969px;">Size of the total bargraph (active + background part)</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Max Active Bargraph Size</td><td style="height: 46.5938px;">Float</td><td style="height: 46.5938px;">Maximum size of the bargraph indicating the distance ("Relative Distance Value" == 100)</td></tr><tr><td style="height: 46.5938px;">Color Change Threshold</td><td style="height: 46.5938px;">UInt8</td><td style="height: 46.5938px;">Threshold to indicate that the next turn is close, the bargraph color will change to "Bargraph Color Below Threshold"</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Bargraph Color Normal</td><td style="height: 46.5938px;">Color</td><td style="height: 46.5938px;">Color of the bargraph if not close to the turn, determined by the "Value Close To Turn" property</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Bargraph Color Below Threshold</td><td style="height: 46.5938px;">Color</td><td style="height: 46.5938px;">Color of the bargraph if close to the turn, determined by the "Color Change Threshold" property</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Bargraph Background Color</td><td style="height: 29.7969px;">Color</td><td style="height: 29.7969px;">Color of the bargraph background</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Max Street Name Text Size</td><td style="height: 29.7969px;">UInt32</td><td style="height: 29.7969px;">Maximum size of the street name text</td></tr></tbody></table>