Reference for the Mosaic class WidgetSet::PushButtonConfig

WidgetSet::PushButtonConfig
AccentBorderColorActive
AccentBorderColorDefault
AccentBorderColorDisabled
AccentBorderColorFocused
AccentBorderWidthActive
AccentBorderWidthDefault
AccentBorderWidthDisabled
AccentBorderWidthFocused
AccentColorActive
AccentColorDefault
AccentColorDisabled
AccentColorFocused
AccentCornerRadiusActive
AccentCornerRadiusDefault
AccentCornerRadiusDisabled
AccentCornerRadiusFocused
AccentLayout
AccentOffsetActive
AccentOffsetDefault
AccentOffsetDisabled
AccentOffsetFocused
AccentSizeActive
AccentSizeDefault
AccentSizeDisabled
AccentSizeFocused
AccentStackingPriority
CommonOffsetActive
CommonOffsetDefault
CommonOffsetDisabled
CommonOffsetFocused
FaceBitmapActive
FaceBitmapDefault
FaceBitmapDisabled
FaceBitmapFocused
FaceFrameActive
FaceFrameDefault
FaceFrameDisabled
FaceFrameFocused
FaceLayout
FaceMarginBottom
FaceMarginLeft
FaceMarginRight
FaceMarginTop
FaceStackingPriority
FaceTintActive
FaceTintDefault
FaceTintDisabled
FaceTintFocused
IconAlignment
IconMarginBottom
IconMarginLeft
IconMarginRight
IconMarginTop
IconStackingPriority
IconTintActive
IconTintDefault
IconTintDisabled
IconTintFocused
KeyCode
LabelAlignment
LabelColorActive
LabelColorDefault
LabelColorDisabled
LabelColorFocused
LabelFont
LabelMarginBottom
LabelMarginLeft
LabelMarginRight
LabelMarginTop
LabelStackingPriority
OnUpdate
PressedFeedbackDuration
StateTransitionDuration
ThumbBorderColorActive
ThumbBorderColorDefault
ThumbBorderColorDisabled
ThumbBorderColorFocused
ThumbBorderWidthActive
ThumbBorderWidthDefault
ThumbBorderWidthDisabled
ThumbBorderWidthFocused
ThumbColorActive
ThumbColorDefault
ThumbColorDisabled
ThumbColorFocused
ThumbCornerRadiusActive
ThumbCornerRadiusDefault
ThumbCornerRadiusDisabled
ThumbCornerRadiusFocused
ThumbLayout
ThumbOffsetActive
ThumbOffsetDefault
ThumbOffsetDisabled
ThumbOffsetFocused
ThumbShadowBlurRadiusActive
ThumbShadowBlurRadiusDefault
ThumbShadowBlurRadiusDisabled
ThumbShadowBlurRadiusFocused
ThumbShadowColorActive
ThumbShadowColorDefault
ThumbShadowColorDisabled
ThumbShadowColorFocused
ThumbShadowOffsetActive
ThumbShadowOffsetDefault
ThumbShadowOffsetDisabled
ThumbShadowOffsetFocused
ThumbSizeActive
ThumbSizeDefault
ThumbSizeDisabled
ThumbSizeFocused
ThumbStackingPriority
WidgetMaxSize
WidgetMinSize
WidgetSet::WidgetConfig

SEE ALSO

Using and customizing the Push Button widget.

This class implements the functionality permitting you to simply customize the look and feel of a monostable 'push button' widget (WidgetSet::PushButton). In the practice, you will create an instance of this class, configure its properties with bitmaps, colors and other relevant attributes according to your design expectations and assign such prepared configuration object to the property 'Appearance' of every affected push button widget. Thereupon the widgets will use the configuration information provided in the object.

During its lifetime the button remains always in one of the four states: 'disabled', 'default', 'focused' and 'active'. The state 'disabled' is true for every not available button (the property 'Enabled' of the button is 'false'). Such buttons will ignore all user inputs. The state 'default' determines a button, which is ready to be touched by the user or ready to become focused. As soon as the button becomes focused, it switches in the state 'focused'. In this state the user can activate the button by pressing a key on the keyboard. Finally, the state 'active' is true, if the user actually interacts with the button (the button is pressed). With the configuration object you can specify the appearance of the button for every state individually. For this purpose you should know from which views the button is composed of:

All above mentioned views are arranged one above the other whereby the resulting stacking order can be configured by using the properties FaceStackingPriority, IconStackingPriority, LabelStackingPriority, ThumbStackingPriority and AccentStackingPriority. The view with higher priority will appear in front of other views with lower priority.

Normally, when a state alternation occurs, the affected views are updated immediatelly to reflect the new state. By using the property StateTransitionDuration it is possible to configure the push button to perform state alternations with animations (e.g. the displacement of the shadow can be animated). This affects all attributes of the views 'ThumbRectangle', 'ThumbBorder', 'ThumbShadow', 'AccentRectangle' and 'AccentBorder'. In case of the views 'FaceImage', 'Label' and 'Icon' the animation has an effect only on the colors and offsets used to configure the views. Consequently, during animations these views can fade-out/in their colors and move only.

If the button is actually focused, it can also be activated by pressing the keyboard key specified in the property KeyCode. To prevent the button from being able to be focused, initialize this property with the value Core::KeyCode.NoKey. The property PressedFeedbackDuration configures the duration how long the button should appear active (pressed) even if it has been taped for a very short time.

To further enhance the widgets, a slot method can be assigned to the property OnUpdate. Within the slot method new decoration views can be added to the widgets and updated according to the current state of the widget.

With the properties WidgetMinSize and WidgetMaxSize you can configure size constraints for the widget itself. You can, for example, limit the button to not shrink below a specified width or height.

property color AccentBorderColorActive = #00000000;

The property 'AccentBorderColorActive' determines the color to stroke the border surrounding the accent area when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). To determine the thickness of the border use the property AccentBorderWidthActive.

property color AccentBorderColorDefault = #00000000;

The property 'AccentBorderColorDefault' determines the color to stroke the border surrounding the accent area when the button is in the 'default' state. To determine the thickness of the border use the property AccentBorderWidthDefault.

property color AccentBorderColorDisabled = #00000000;

The property 'AccentBorderColorDisabled' determines the color to stroke the border surrounding the accent area when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). To determine the thickness of the border use the property AccentBorderWidthDisabled.

property color AccentBorderColorFocused = #00000000;

The property 'AccentBorderColorFocused' determines the color to stroke the border surrounding the accent area when the button is in the 'focused' state (the button can react to keyboard events). To determine the thickness of the border use the property AccentBorderWidthFocused.

property int32 AccentBorderWidthActive = 0;

The property 'AccentBorderWidthActive' determines the thickness of the border surrounding the accent area when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). The value is expressed in pixel. To determine the color of the border use the property AccentBorderColorActive.

property int32 AccentBorderWidthDefault = 0;

The property 'AccentBorderWidthDefault' determines the thickness of the border surrounding the accent area when the button is in the 'default' state. The value is expressed in pixel. To determine the color of the border use the property AccentBorderColorDefault.

property int32 AccentBorderWidthDisabled = 0;

The property 'AccentBorderWidthDisabled' determines the thickness of the border surrounding the accent area when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). The value is expressed in pixel. To determine the color of the border use the property AccentBorderColorDisabled.

property int32 AccentBorderWidthFocused = 0;

The property 'AccentBorderWidthFocused' determines the thickness of the border surrounding the accent area when the button is in the 'focused' state (the button can react to keyboard events). The value is expressed in pixel. To determine the color of the border use the property AccentBorderColorFocused.

property color AccentColorActive = #00000000;

The property 'AccentColorActive' determines the color to fill the background of the accent area when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on).

property color AccentColorDefault = #00000000;

The property 'AccentColorDefault' determines the color to fill the background of the accent area when the button is in the 'default' state.

property color AccentColorDisabled = #00000000;

The property 'AccentColorDisabled' determines the color to fill the background of the accent area when the button is in the 'disabled' state (property 'Enabled' of the button is 'false').

property color AccentColorFocused = #00000000;

The property 'AccentColorFocused' determines the color to fill the background of the accent area when the button is in the 'focused' state (the button can react to keyboard events).

property int32 AccentCornerRadiusActive = 0;

The property 'AccentCornerRadiusActive' controls the rounding at corners of the accent area when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). Normally, the accent area has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'active'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the accent area.

property int32 AccentCornerRadiusDefault = 0;

The property 'AccentCornerRadiusDefault' controls the rounding at corners of the accent area when the button is in the 'default' state. Normally, the accent area has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'default'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the accent area.

property int32 AccentCornerRadiusDisabled = 0;

The property 'AccentCornerRadiusDisabled' controls the rounding at corners of the accent area when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). Normally, the accent area has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'disabled'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the accent area.

property int32 AccentCornerRadiusFocused = 0;

The property 'AccentCornerRadiusFocused' controls the rounding at corners of the accent area when the button is in the 'focused' state (the button can react to keyboard events). Normally, the accent area has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'focused'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the accent area.

property Core::Layout AccentLayout = Core::Layout[AlignToBottom, AlignToLeft, AlignToRight, AlignToTop, ResizeHorz, ResizeVert];

The property 'AccentLayout' determines the constraints how the accent area (composed of a rectangle and border) should be aligned within the button area. Per default the accent area fills the button widget entirely.

The constraints 'ResizeVert' and 'ResizeHorz' determine whether the accent area should be resized to fill the button vertically and/or horizontally. Deactivating the constraint causes the button to display the accent area with fixed height and/or width determined by the property AccentSizeActive, AccentSizeDefault, AccentSizeDisabled or AccentSizeFocused depending on the actual state of the button. With the constraints 'AlignToTop', 'AlignToBottom', 'AlignToLeft' and 'AlignToRight' the accent area can be aligned within the button area.

Please note, by using the properties AccentOffsetActive, AccentOffsetDefault, AccentOffsetDisabled and AccentOffsetFocused an additional displacement for the accent area can be determined individually for each button state.

property point AccentOffsetActive = <0,0>;

The property 'AccentOffsetActive' determines an additional displacement for the accent area when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). Unless other constraints have been specified in the property AccentLayout, the accent area is aligned at the top-left corner of the button area. The value specified in the property AccentOffsetActive is used to move the accent area accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the accent area can be modified by using the associated property AccentSizeActive. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property point AccentOffsetDefault = <0,0>;

The property 'AccentOffsetDefault' determines an additional displacement for the accent area when the button is in the 'default' state. Unless other constraints have been specified in the property AccentLayout, the accent area is aligned at the top-left corner of the button area. The value specified in the property AccentOffsetDefault is used to move the accent area accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the accent area can be modified by using the associated property AccentSizeDefault. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property point AccentOffsetDisabled = <0,0>;

The property 'AccentOffsetDisabled' determines an additional displacement for the accent area when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). Unless other constraints have been specified in the property AccentLayout, the accent area is aligned at the top-left corner of the button area. The value specified in the property AccentOffsetDisabled is used to move the accent area accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the accent area can be modified by using the associated property AccentSizeDisabled. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property point AccentOffsetFocused = <0,0>;

The property 'AccentOffsetFocused' determines an additional displacement for the accent area when the button is in the 'focused' state (the button can react to keyboard events). Unless other constraints have been specified in the property AccentLayout, the accent area is aligned at the top-left corner of the button area. The value specified in the property AccentOffsetFocused is used to move the accent area accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the accent area can be modified by using the associated property AccentSizeFocused. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property point AccentSizeActive = <0,0>;

The property 'AccentSizeActive' controls the size of the accent area when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). Unless other constraints have been specified in the property AccentLayout, the accent area fills the complete button area. With the value specified in the property AccentSizeActive it is possible to enlarge the accent area. By specifying negative values in this property, the accent area will shrink accordingly. If AccentLayout is configured to not automatically resize the accent area, the value specified in the property AccentSizeActive determines the final size of the accent area. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the accent area can be modified by using the associated property AccentOffsetActive. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property point AccentSizeDefault = <0,0>;

The property 'AccentSizeDefault' controls the size of the accent area when the button is in the 'default' state. Unless other constraints have been specified in the property AccentLayout, the accent area fills the complete button area. With the value specified in the property AccentSizeDefault it is possible to enlarge the accent area. By specifying negative values in this property, the accent area will shrink accordingly. If AccentLayout is configured to not automatically resize the accent area, the value specified in the property AccentSizeDefault determines the final size of the accent area. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the accent area can be modified by using the associated property AccentOffsetDefault. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property point AccentSizeDisabled = <0,0>;

The property 'AccentSizeDisabled' controls the size of the accent area when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). Unless other constraints have been specified in the property AccentLayout, the accent area fills the complete button area. With the value specified in the property AccentSizeDisabled it is possible to enlarge the accent area. By specifying negative values in this property, the accent area will shrink accordingly. If AccentLayout is configured to not automatically resize the accent area, the value specified in the property AccentSizeDisabled determines the final size of the accent area. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the accent area can be modified by using the associated property AccentOffsetDisabled. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property point AccentSizeFocused = <0,0>;

The property 'AccentSizeFocused' controls the size of the accent area when the button is in the 'focused' state (the button can react to keyboard events). Unless other constraints have been specified in the property AccentLayout, the accent area fills the complete button area. With the value specified in the property AccentSizeFocused it is possible to enlarge the accent area. By specifying negative values in this property, the accent area will shrink accordingly. If AccentLayout is configured to not automatically resize the accent area, the value specified in the property AccentSizeFocused determines the final size of the accent area. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the accent area can be modified by using the associated property AccentOffsetFocused. In this manner the button can be configured with an accent area changing its position and size depending on the state of the widget.

property int32 AccentStackingPriority = 5;

The property 'AccentStackingPriority' determines the Z-order position of the views destined to display the accent area (rectangle and border). Per default all accent views are arranged in front of all other views. By configuring this property the arrangement of the views within the widget can be changed whereby views with larger priority will be arranged in front of views with lower priority. For example, to place the accent views in background of the push button, configure the property with a smaller value.

property point CommonOffsetActive = <0,0>;

The property 'CommonOffsetActive' determines an additional displacement for areas destined to display the label text, the icon bitmap and the face bitmap when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). In this manner the label, icon and face can move depending on the state of the widget.

property point CommonOffsetDefault = <0,0>;

The property 'CommonOffsetDefault' determines an additional displacement for areas destined to display the label text, the icon bitmap and the face bitmap when the button is in the 'default' state. In this manner the label, icon and face can move depending on the state of the widget.

property point CommonOffsetDisabled = <0,0>;

The property 'CommonOffsetDisabled' determines an additional displacement for areas destined to display the label text, the icon bitmap and the face bitmap when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). In this manner the label, icon and face can move depending on the state of the widget.

property point CommonOffsetFocused = <0,0>;

The property 'CommonOffsetFocused' determines an additional displacement for areas destined to display the label text, the icon bitmap and the face bitmap when the button is in the 'focused' state (the button can react to keyboard events). In this manner the label, icon and face can move depending on the state of the widget.

property Resources::Bitmap FaceBitmapActive = null;

The property 'FaceBitmapActive' determines the bitmap to fill the background of the push button when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on).

If the specified bitmap contains more than one frame (multi-frame bitmap), the desired frame number can be selected in the property FaceFrameActive. If the selected bitmap is intended to be animated, ensure that the property FaceFrameActive is -1.

If the specified bitmap contains opacity information only (Alpha8 bitmap), you can tint the bitmap by specifying the desired color in the property FaceTintActive. With the property FaceTintActive you can also modulate the opacity of a regular bitmap.

Per default, the actually visible face bitmap fills the entire background area of the button. With the property FaceLayout you can modify this behavior and configure the bitmap to retain its original width and/or height. You can also determine how the bitmap should be aligned vertically and horizontally within the button area. The area can additionally be limited by using the properties FaceMarginBottom, FaceMarginLeft, FaceMarginRight, FaceMarginTop.

property Resources::Bitmap FaceBitmapDefault = null;

The property 'FaceBitmapDefault' determines the bitmap to fill the background of the push button when the button is in the 'default' state.

If the specified bitmap contains more than one frame (multi-frame bitmap), the desired frame number can be selected in the property FaceFrameDefault. If the selected bitmap is intended to be animated, ensure that the property FaceFrameDefault is -1.

If the specified bitmap contains opacity information only (Alpha8 bitmap), you can tint the bitmap by specifying the desired color in the property FaceTintDefault. With the property FaceTintDefault you can also modulate the opacity of a regular bitmap.

Per default, the actually visible face bitmap fills the entire background area of the button. With the property FaceLayout you can modify this behavior and configure the bitmap to retain its original width and/or height. You can also determine how the bitmap should be aligned vertically and horizontally within the button area. The area can additionally be limited by using the properties FaceMarginBottom, FaceMarginLeft, FaceMarginRight, FaceMarginTop.

property Resources::Bitmap FaceBitmapDisabled = null;

The property 'FaceBitmapDisabled' determines the bitmap to fill the background of the push button when the button is in the 'disabled' state (property 'Enabled' of the button is 'false').

If the specified bitmap contains more than one frame (multi-frame bitmap), the desired frame number can be selected in the property FaceFrameDisabled. If the selected bitmap is intended to be animated, ensure that the property FaceFrameDisabled is -1.

If the specified bitmap contains opacity information only (Alpha8 bitmap), you can tint the bitmap by specifying the desired color in the property FaceTintDisabled. With the property FaceTintDisabled you can also modulate the opacity of a regular bitmap.

Per default, the actually visible face bitmap fills the entire background area of the button. With the property FaceLayout you can modify this behavior and configure the bitmap to retain its original width and/or height. You can also determine how the bitmap should be aligned vertically and horizontally within the button area. The area can additionally be limited by using the properties FaceMarginBottom, FaceMarginLeft, FaceMarginRight, FaceMarginTop.

property Resources::Bitmap FaceBitmapFocused = null;

The property 'FaceBitmapFocused' determines the bitmap to fill the background of the push button when the button is in the 'focused' state (the button can react to keyboard events).

If the specified bitmap contains more than one frame (multi-frame bitmap), the desired frame number can be selected in the property FaceFrameFocused. If the selected bitmap is intended to be animated, ensure that the property FaceFrameFocused is -1.

If the specified bitmap contains opacity information only (Alpha8 bitmap), you can tint the bitmap by specifying the desired color in the property FaceTintFocused. With the property FaceTintFocused you can also modulate the opacity of a regular bitmap.

Per default, the actually visible face bitmap fills the entire background area of the button. With the property FaceLayout you can modify this behavior and configure the bitmap to retain its original width and/or height. You can also determine how the bitmap should be aligned vertically and horizontally within the button area. The area can additionally be limited by using the properties FaceMarginBottom, FaceMarginLeft, FaceMarginRight, FaceMarginTop.

property int32 FaceFrameActive = -1;

The property 'FaceFrameActive' determines the frame number within the bitmap FaceBitmapActive. This property is applicable for multi-frame bitmaps only (see also Resources::Bitmap). If the desired frame is not available in the bitmap, no bitmap is shown.

If the property is initialized with the value -1 and the FaceBitmapActive bitmap is animated, the animation is automatically started as soon as the button enters the 'active' state. If the bitmap is not animated and the property is -1, the frame with number 0 is displayed.

property int32 FaceFrameDefault = -1;

The property 'FaceFrameDefault' determines the frame number within the bitmap FaceBitmapDefault. This property is applicable for multi-frame bitmaps only (see also Resources::Bitmap). If the desired frame is not available in the bitmap, no bitmap is shown.

If the property is initialized with the value -1 and the FaceBitmapDefault bitmap is animated, the animation is automatically started as soon as the button enters the 'default' state. If the bitmap is not animated and the property is -1, the frame with number 0 is displayed.

property int32 FaceFrameDisabled = -1;

The property 'FaceFrameDisabled' determines the frame number within the bitmap FaceBitmapDisabled. This property is applicable for multi-frame bitmaps only (see also Resources::Bitmap). If the desired frame is not available in the bitmap, no bitmap is shown.

If the property is initialized with the value -1 and the FaceBitmapDisabled bitmap is animated, the animation is automatically started as soon as the button enters the 'disabled' state. If the bitmap is not animated and the property is -1, the frame with number 0 is displayed.

property int32 FaceFrameFocused = -1;

The property 'FaceFrameFocused' determines the frame number within the bitmap FaceBitmapFocused. This property is applicable for multi-frame bitmaps only (see also Resources::Bitmap). If the desired frame is not available in the bitmap, no bitmap is shown.

If the property is initialized with the value -1 and the FaceBitmapFocused bitmap is animated, the animation is automatically started as soon as the button enters the 'focused' state. If the bitmap is not animated and the property is -1, the frame with number 0 is displayed.

property Core::Layout FaceLayout = Core::Layout[AlignToBottom, AlignToLeft, AlignToRight, AlignToTop, ResizeHorz, ResizeVert];

The property 'FaceLayout' determines the constraints how the actually displayed face bitmap (FaceBitmapActive, FaceBitmapDefault, FaceBitmapDisabled or FaceBitmapFocused) should be aligned within the button area. Per default the bitmap fills the button widget entirely.

The constraints 'ResizeVert' and 'ResizeHorz' determine whether the bitmap should be resized to fill the button vertically and/or horizontally. Deactivating the constraint causes the button to display the bitmap with its original height and/or width. In such case you can configure with the constraints 'AlignToTop', 'AlignToBottom', 'AlignToLeft' and 'AlignToRight' how the bitmap should be aligned within the button area.

Please note, by using the properties FaceMarginLeft, FaceMarginRight, FaceMarginTop and FaceMarginBottom the area can be limited so it does not fill the entire push button.

property int32 FaceMarginBottom = 0;

The property 'FaceMarginBottom' determines the gap below the area to fill with the bitmap FaceBitmapDefault, FaceBitmapDisabled, FaceBitmapFocused or FaceBitmapActive. The gap is relative to the bottom edge of the button itself.

Please note, the position and the size of the area can additionally be controlled by the property FaceLayout. Furthermore, by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused the position of the area can be adjusted for each button state individually.

property int32 FaceMarginLeft = 0;

The property 'FaceMarginLeft' determines the gap on the left of the area to fill with the bitmap FaceBitmapDefault, FaceBitmapDisabled, FaceBitmapFocused or FaceBitmapActive. The gap is relative to the left edge of the button itself.

Please note, the position and the size of the area can additionally be controlled by the property FaceLayout. Furthermore, by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused the position of the area can be adjusted for each button state individually.

property int32 FaceMarginRight = 0;

The property 'FaceMarginRight' determines the gap on the right of the area to fill with the bitmap FaceBitmapDefault, FaceBitmapDisabled, FaceBitmapFocused or FaceBitmapActive. The gap is relative to the right edge of the button itself.

Please note, the position and the size of the area can additionally be controlled by the property FaceLayout. Furthermore, by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused the position of the area can be adjusted for each button state individually.

property int32 FaceMarginTop = 0;

The property 'FaceMarginTop' determines the gap above the area to fill with the bitmap FaceBitmapDefault, FaceBitmapDisabled, FaceBitmapFocused or FaceBitmapActive. The gap is relative to the top edge of the button itself.

Please note, the position and the size of the area can additionally be controlled by the property FaceLayout. Furthermore, by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused the position of the area can be adjusted for each button state individually.

property int32 FaceStackingPriority = 1;

The property 'FaceStackingPriority' determines the Z-order position of the view destined to display the face bitmap. Per default the face view is arranged in the background of the push button behind all other views. By configuring this property the arrangement of the views within the widget can be changed whereby views with larger priority will be arranged in front of views with lower priority. For example, to bring the face view in front of the push button, configure the property with a larger value.

property color FaceTintActive = #FFFFFFFF;

The property 'FaceTintActive' determines the color value to tint or modulate the bitmap specified in the property FaceBitmapActive. The effect of this color value depends on the type of the bitmap:

property color FaceTintDefault = #FFFFFFFF;

The property 'FaceTintDefault' determines the color value to tint or modulate the bitmap specified in the property FaceBitmapDefault. The effect of this color value depends on the type of the bitmap:

property color FaceTintDisabled = #FFFFFFFF;

The property 'FaceTintDisabled' determines the color value to tint or modulate the bitmap specified in the property FaceBitmapDisabled. The effect of this color value depends on the type of the bitmap:

property color FaceTintFocused = #FFFFFFFF;

The property 'FaceTintFocused' determines the color value to tint or modulate the bitmap specified in the property FaceBitmapFocused. The effect of this color value depends on the type of the bitmap:

property Views::ImageAlignment IconAlignment = Views::ImageAlignment[AlignHorzCenter, AlignVertCenter];

The property 'IconAlignment' determines how the bitmap specified in the property 'Icon' of the button widget should be aligned.

Per default, the icon is aligned within the entire button area. By using the properties IconMarginLeft, IconMarginRight, IconMarginTop and IconMarginBottom you can limit the area as desired. Additionally the position can be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 IconMarginBottom = 0;

The property 'IconMarginBottom' determines the gap below the area destined to display the icon bitmap relative to the bottom edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 IconMarginLeft = 0;

The property 'IconMarginLeft' determines the gap on the left of the area destined to display the icon bitmap relative to the left edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 IconMarginRight = 0;

The property 'IconMarginRight' determines the gap on the right of the area destined to display the icon bitmap relative to the right edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 IconMarginTop = 0;

The property 'IconMarginTop' determines the gap above the area destined to display the icon bitmap relative to the top edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 IconStackingPriority = 3;

The property 'IconStackingPriority' determines the Z-order position of the view destined to display the icon bitmap. Per default the icon view is arranged in front of the face and thumb views (it lies in foreground). By configuring this property the arrangement of the views within the widget can be changed whereby views with larger priority will be arranged in front of views with lower priority. For example, to place the icon view in the background of the push button, configure the property with a smaller value.

property color IconTintActive = #FFFFFFFF;

The property 'IconTintActive' determines the color value to tint or modulate the bitmap specified in the property 'Icon' of the button widget if the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). The effect of this color value depends on the type of the bitmap:

property color IconTintDefault = #FFFFFFFF;

The property 'IconTintDefault' determines the color value to tint or modulate the bitmap specified in the property 'Icon' of the button widget if the button is in the 'default' state. The effect of this color value depends on the type of the bitmap:

property color IconTintDisabled = #FFFFFFFF;

The property 'IconTintDisabled' determines the color value to tint or modulate the bitmap specified in the property 'Icon' of the button widget if the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). The effect of this color value depends on the type of the bitmap:

property color IconTintFocused = #FFFFFFFF;

The property 'IconTintFocused' determines the color value to tint or modulate the bitmap specified in the property 'Icon' of the button widget if the button is in the 'focused' state (the button can react to keyboard events). The effect of this color value depends on the type of the bitmap:

property Core::KeyCode KeyCode = Core::KeyCode.Enter;

The property 'KeyCode' determines the key, the button should react on when it is focused. In this manner the user can control the widget by using keyboard or hardware buttons.

If this property is initialized with the value Core::KeyCode.NoKey, the button will not be able to become focused and it will not receive any keyboard events.

property Views::TextAlignment LabelAlignment = Views::TextAlignment[AlignHorzCenter, AlignVertCenter];

The property 'LabelAlignment' determines how the text specified in the property 'Label' of the button widget should be aligned.

Per default, the label is aligned within the entire button area. By using the properties LabelMarginLeft, LabelMarginRight, LabelMarginTop and LabelMarginBottom you can limit the area as desired. Additionally the position can be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property color LabelColorActive = #000000FF;

The property 'LabelColorActive' determines the color value to use when the text specified in the property 'Label' of the button widget is displayed and the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on).

property color LabelColorDefault = #000000FF;

The property 'LabelColorDefault' determines the color value to use when the text specified in the property 'Label' of the button widget is displayed and the button is in the 'default' state.

property color LabelColorDisabled = #000000FF;

The property 'LabelColorDisabled' determines the color value to use when the text specified in the property 'Label' of the button widget is displayed and the button is in the 'disabled' state (property 'Enabled' of the button is 'false').

property color LabelColorFocused = #000000FF;

The property 'LabelColorFocused' determines the color value to use when the text specified in the property 'Label' of the button widget is displayed and the button is in the 'focused' state (the button can react to keyboard events).

property Resources::Font LabelFont = null;

The property 'LabelFont' determines the font object used to print the text specified in the property 'Label' of the button widget. If no font is specified (the property is 'null'), no text is displayed.

property int32 LabelMarginBottom = 0;

The property 'LabelMarginBottom' determines the gap below the area destined to display the label text relative to the bottom edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 LabelMarginLeft = 0;

The property 'LabelMarginLeft' determines the gap on the left of the area destined to display the label text relative to the left edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 LabelMarginRight = 0;

The property 'LabelMarginRight' determines the gap on the right of the area destined to display the label text relative to the right edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 LabelMarginTop = 0;

The property 'LabelMarginTop' determines the gap above the area destined to display the label text relative to the top edge of the button itself.

Please note, the position of the area can additionally be adjusted for each button state individually by using the properties CommonOffsetActive, CommonOffsetDefault, CommonOffsetDisabled and CommonOffsetFocused.

property int32 LabelStackingPriority = 4;

The property 'LabelStackingPriority' determines the Z-order position of the view destined to display the label. Per default the label view is arranged in front of the face and thumb views (it lies in foreground). By configuring this property the arrangement of the views within the widget can be changed whereby views with larger priority will be arranged in front of views with lower priority. For example, to place the label view in the background of the push button, configure the property with a smaller value.

property slot OnUpdate = null;

The property 'OnUpdate' can refer to a slot method, which should be invoked by widgets connected to this configuration object when the widget's state changes. This method is intended to add and update custom widget decorations.

The usage of this property is equal to the homonymous property explained in WidgetSet::PushButton. See its description for more details.

Please note, when the slot method is invoked, the method's parameter 'sender' refers the widget instance causing the invocation. In this manner, by using 'sender' the implementation of the slot method can access the widget to add and manipulate decoration views.

property int32 PressedFeedbackDuration = 50;

The property 'PressedFeedbackDuration' determines the minimum time in milliseconds how long the push button should appear pressed after the user has tapped it. This ensures, that the user can notice, that the button has been activated even if the user has touched it for a very short period.

property int32 StateTransitionDuration = 0;

The property 'StateTransitionDuration' controls how long do animations take when the state of the button changes. In this manner the appearance of the widget is updated smoothly (e.g. shadow is faded-out) instead of being performed abruptly. This value is expressed in milliseconds. If this value is 0 (zero), no animations are performed.

Animations affect all attributes of the views 'Thumb', 'ThumbBorder', 'ThumbShadow', 'Accent' and 'AccentBorder'. In case of the views 'Face', 'Label' and 'Icon' the animation has an effect only on the colors and offsets used to configure the views. Consequently, during animations these views can fade-out/in their colors and move only.

property color ThumbBorderColorActive = #00000000;

The property 'ThumbBorderColorActive' determines the color to stroke the border surrounding the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). To determine the thickness of the border use the property ThumbBorderWidthActive.

property color ThumbBorderColorDefault = #00000000;

The property 'ThumbBorderColorDefault' determines the color to stroke the border surrounding the thumb when the button is in the 'default' state. To determine the thickness of the border use the property ThumbBorderWidthDefault.

property color ThumbBorderColorDisabled = #00000000;

The property 'ThumbBorderColorDisabled' determines the color to stroke the border surrounding the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). To determine the thickness of the border use the property ThumbBorderWidthDisabled.

property color ThumbBorderColorFocused = #00000000;

The property 'ThumbBorderColorFocused' determines the color to stroke the border surrounding the thumb when the button is in the 'focused' state (the button can react to keyboard events). To determine the thickness of the border use the property ThumbBorderWidthFocused.

property int32 ThumbBorderWidthActive = 0;

The property 'ThumbBorderWidthActive' determines the thickness of the border surrounding the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). The value is expressed in pixel. To determine the color of the border use the property ThumbBorderColorActive.

property int32 ThumbBorderWidthDefault = 0;

The property 'ThumbBorderWidthDefault' determines the thickness of the border surrounding the thumb when the button is in the 'default' state. The value is expressed in pixel. To determine the color of the border use the property ThumbBorderColorDefault.

property int32 ThumbBorderWidthDisabled = 0;

The property 'ThumbBorderWidthDisabled' determines the thickness of the border surrounding the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). The value is expressed in pixel. To determine the color of the border use the property ThumbBorderColorDisabled.

property int32 ThumbBorderWidthFocused = 0;

The property 'ThumbBorderWidthFocused' determines the thickness of the border surrounding the thumb when the button is in the 'focused' state (the button can react to keyboard events). The value is expressed in pixel. To determine the color of the border use the property ThumbBorderColorFocused.

property color ThumbColorActive = #00000000;

The property 'ThumbColorActive' determines the color to fill the background of the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on).

property color ThumbColorDefault = #00000000;

The property 'ThumbColorDefault' determines the color to fill the background of the thumb when the button is in the 'default' state.

property color ThumbColorDisabled = #00000000;

The property 'ThumbColorDisabled' determines the color to fill the background of the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false').

property color ThumbColorFocused = #00000000;

The property 'ThumbColorFocused' determines the color to fill the background of the thumb when the button is in the 'focused' state (the button can react to keyboard events).

property int32 ThumbCornerRadiusActive = 0;

The property 'ThumbCornerRadiusActive' controls the rounding at corners of the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). Normally, the thumb has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'active'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the thumb.

property int32 ThumbCornerRadiusDefault = 0;

The property 'ThumbCornerRadiusDefault' controls the rounding at corners of the thumb when the button is in the 'default' state. Normally, the thumb has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'default'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the thumb.

property int32 ThumbCornerRadiusDisabled = 0;

The property 'ThumbCornerRadiusDisabled' controls the rounding at corners of the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). Normally, the thumb has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'disabled'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the thumb.

property int32 ThumbCornerRadiusFocused = 0;

The property 'ThumbCornerRadiusFocused' controls the rounding at corners of the thumb when the button is in the 'focused' state (the button can react to keyboard events). Normally, the thumb has the shape of a rectangle with sharp corners. Specifying a value greater than 0 in this property rounds the corners. The larger the value, the bigger the rounding effect in the state 'focused'. The value is expressed as radius in pixel.

Please note, that the corner radius is automatically limited to half the shorter edge of the rectangle representing the thumb.

property Core::Layout ThumbLayout = Core::Layout[AlignToBottom, AlignToLeft, AlignToRight, AlignToTop, ResizeHorz, ResizeVert];

The property 'ThumbLayout' determines the constraints how the thumb (composed of a rectangle, border and shadow behind them) should be aligned within the button area. Per default the thumb fills the button widget entirely.

The constraints 'ResizeVert' and 'ResizeHorz' determine whether the thumb should be resized to fill the button vertically and/or horizontally. Deactivating the constraint causes the button to display the thumb with fixed height and/or width determined by the property ThumbSizeActive, ThumbSizeDefault, ThumbSizeDisabled or ThumbSizeFocused depending on the actual state of the button. With the constraints 'AlignToTop', 'AlignToBottom', 'AlignToLeft' and 'AlignToRight' the thumb can be aligned within the button area.

Please note, by using the properties ThumbOffsetActive, ThumbOffsetDefault, ThumbOffsetDisabled and ThumbOffsetFocused an additional displacement for the thumb can be determined individually for each button state.

property point ThumbOffsetActive = <0,0>;

The property 'ThumbOffsetActive' determines an additional displacement for the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). Unless other constraints have been specified in the property ThumbLayout, the thumb is aligned at the top-left corner of the button area. The value specified in the property ThumbOffsetActive is used to move the thumb accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the thumb can be modified by using the associated property ThumbSizeActive. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property point ThumbOffsetDefault = <0,0>;

The property 'ThumbOffsetDefault' determines an additional displacement for the thumb when the button is in the 'default' state. Unless other constraints have been specified in the property ThumbLayout, the thumb is aligned at the top-left corner of the button area. The value specified in the property ThumbOffsetDefault is used to move the thumb accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the thumb can be modified by using the associated property ThumbSizeDefault. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property point ThumbOffsetDisabled = <0,0>;

The property 'ThumbOffsetDisabled' determines an additional displacement for the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). Unless other constraints have been specified in the property ThumbLayout, the thumb is aligned at the top-left corner of the button area. The value specified in the property ThumbOffsetDisabled is used to move the thumb accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the thumb can be modified by using the associated property ThumbSizeDisabled. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property point ThumbOffsetFocused = <0,0>;

The property 'ThumbOffsetFocused' determines an additional displacement for the thumb when the button is in the 'focused' state (the button can react to keyboard events). Unless other constraints have been specified in the property ThumbLayout, the thumb is aligned at the top-left corner of the button area. The value specified in the property ThumbOffsetFocused is used to move the thumb accordingly. The values are expressed in pixel.

Besides the possibility to adjust the position, also the size of the thumb can be modified by using the associated property ThumbSizeFocused. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property int32 ThumbShadowBlurRadiusActive = 0;

The property 'ThumbShadowBlurRadiusActive' determines the blur radius of the shadow behind the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). The value is expressed in pixel and it is limitted to 64 pixel.

property int32 ThumbShadowBlurRadiusDefault = 0;

The property 'ThumbShadowBlurRadiusDefault' determines the blur radius of the shadow behind the thumb when the button is in the 'default' state. The value is expressed in pixel and it is limitted to 64 pixel.

property int32 ThumbShadowBlurRadiusDisabled = 0;

The property 'ThumbShadowBlurRadiusDisabled' determines the blur radius of the shadow behind the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). The value is expressed in pixel and it is limitted to 64 pixel.

property int32 ThumbShadowBlurRadiusFocused = 0;

The property 'ThumbShadowBlurRadiusFocused' determines the blur radius of the shadow behind the thumb when the button is in the 'focused' state (the button can react to keyboard events). The value is expressed in pixel and it is limitted to 64 pixel.

property color ThumbShadowColorActive = #00000000;

The property 'ThumbShadowColorActive' determines the color of the shadow behind the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on).

property color ThumbShadowColorDefault = #00000000;

The property 'ThumbShadowColorDefault' determines the color of the shadow behind the thumb when the button is in the 'default' state.

property color ThumbShadowColorDisabled = #00000000;

The property 'ThumbShadowColorDisabled' determines the color of the shadow behind the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false').

property color ThumbShadowColorFocused = #00000000;

The property 'ThumbShadowColorFocused' determines the color of the shadow behind the thumb when the button is in the 'focused' state (the button can react to keyboard events).

property point ThumbShadowOffsetActive = <0,0>;

The property 'ThumbShadowOffsetActive' determines the displacement of the shadow behind the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). The value is expressed in pixel.

property point ThumbShadowOffsetDefault = <0,0>;

The property 'ThumbShadowOffsetDefault' determines the displacement of the shadow behind the thumb when the button is in the 'default' state. The value is expressed in pixel.

property point ThumbShadowOffsetDisabled = <0,0>;

The property 'ThumbShadowOffsetDisabled' determines the displacement of the shadow behind the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). The value is expressed in pixel.

property point ThumbShadowOffsetFocused = <0,0>;

The property 'ThumbShadowOffsetFocused' determines the displacement of the shadow behind the thumb when the button is in the 'focused' state (the button can react to keyboard events). The value is expressed in pixel.

property point ThumbSizeActive = <0,0>;

The property 'ThumbSizeActive' controls the size of the thumb when the button is in the 'active' state (the user is actually touching the button or pressing a key on the keyboard the push button should react on). Unless other constraints have been specified in the property ThumbLayout, the thumb fills the complete button area. With the value specified in the property ThumbSizeActive it is possible to enlarge the thumb. By specifying negative values in this property, the thumb will shrink accordingly. If ThumbLayout is configured to not automatically resize the thumb, the value specified in the property ThumbSizeActive determines the final size of the thumb. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the thumb can be modified by using the associated property ThumbOffsetActive. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property point ThumbSizeDefault = <0,0>;

The property 'ThumbSizeDefault' controls the size of the thumb when the button is in the 'default' state. Unless other constraints have been specified in the property ThumbLayout, the thumb fills the complete button area. With the value specified in the property ThumbSizeDefault it is possible to enlarge the thumb. By specifying negative values in this property, the thumb will shrink accordingly. If ThumbLayout is configured to not automatically resize the thumb, the value specified in the property ThumbSizeDefault determines the final size of the thumb. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the thumb can be modified by using the associated property ThumbOffsetDefault. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property point ThumbSizeDisabled = <0,0>;

The property 'ThumbSizeDisabled' controls the size of the thumb when the button is in the 'disabled' state (property 'Enabled' of the button is 'false'). Unless other constraints have been specified in the property ThumbLayout, the thumb fills the complete button area. With the value specified in the property ThumbSizeDisabled it is possible to enlarge the thumb. By specifying negative values in this property, the thumb will shrink accordingly. If ThumbLayout is configured to not automatically resize the thumb, the value specified in the property ThumbSizeDisabled determines the final size of the thumb. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the thumb can be modified by using the associated property ThumbOffsetDisabled. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property point ThumbSizeFocused = <0,0>;

The property 'ThumbSizeFocused' controls the size of the thumb when the button is in the 'focused' state (the button can react to keyboard events). Unless other constraints have been specified in the property ThumbLayout, the thumb fills the complete button area. With the value specified in the property ThumbSizeFocused it is possible to enlarge the thumb. By specifying negative values in this property, the thumb will shrink accordingly. If ThumbLayout is configured to not automatically resize the thumb, the value specified in the property ThumbSizeFocused determines the final size of the thumb. The values are expressed in pixel.

Besides the possibility to adjust the size, also the position of the thumb can be modified by using the associated property ThumbOffsetFocused. In this manner the button can be configured with a thumb changing its position and size depending on the state of the widget.

property int32 ThumbStackingPriority = 2;

The property 'ThumbStackingPriority' determines the Z-order position of the views destined to display the thumb (rectangle, border and shadow). Per default all thumb views are arranged in front of the face view. By configuring this property the arrangement of the views within the widget can be changed whereby views with larger priority will be arranged in front of views with lower priority. For example, to place the thumb views in background of the push button, configure the property with a smaller value.

property point WidgetMaxSize = <0,0>;

The property 'WidgetMaxSize' determines the maximum allowed size of the widget. Accordingly, the button can't become bigger than the value specified in this property. By using this property you can configure the size constraints for the button.

property point WidgetMinSize = <0,0>;

The property 'WidgetMinSize' determines the minimal allowed size of the widget. Accordingly, the button can't become smaller than the value specified in this property. By using this property you can configure the size constraints for the button.