{
    "$schema": "../../TcHmiFramework/Schema/ControlDescription.Schema.json",
    "apiVersion": 1,
    "name": "TcHmiButton",
    "namespace": "TcHmi.Controls.Beckhoff",
    "displayName": "Button",
    "version": {
        "full": "1.12.760.48",
        "major": 1,
        "minor": 12,
        "build": 760,
        "revision": 48
    },
    "visible": true,
    "themeable": "Standard",
    "base": "TcHmi.Controls.System.TcHmiControl",
    "description": "A simple button.",
    "defaultDesignerEvent": ".onPressed",
    "properties": {
        "containerControl": false,
        "geometry": {
            "width": 100,
            "height": 50
        }
    },
    "icons": [
        {
            "name": "Icons/16x16.png",
            "width": 16,
            "height": 16
        }
    ],
    "template": "Template.html",
    "dependencyFiles": [
        {
            "name": "Style.css",
            "type": "Stylesheet",
            "description": ""
        },
        {
            "name": "TcHmiButton.js",
            "type": "JavaScript",
            "description": ""
        }
    ],
    "themes": {
        "Base": {
            "resources": [
                {
                    "name": "Themes/Base/Style.css",
                    "type": "Stylesheet",
                    "description": ""
                }
            ]
        },
        "Base-Dark": {
            "resources": [
                {
                    "name": "Themes/Base-Dark/Style.css",
                    "type": "Stylesheet",
                    "description": ""
                }
            ]
        }
    },
    "attributes": [
        {
            "name": "data-tchmi-text-color",
            "propertyName": "TextColor",
            "propertySetterName": "setTextColor",
            "propertyGetterName": "getTextColor",
            "displayName": "TextColor",
            "visible": true,
            "themeable": "Standard",
            "displayPriority": 10,
            "type": "tchmi:framework#/definitions/SolidColor",
            "category": "Colors",
            "description": "The color of the optional button text.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "allowSymbolExpressionsInObject": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-text",
            "propertyName": "Text",
            "propertySetterName": "setText",
            "propertyGetterName": "getText",
            "displayName": "Text",
            "visible": true,
            "themeable": "Standard",
            "displayPriority": 10,
            "type": "tchmi:general#/definitions/String",
            "category": "Common",
            "description": "Defines an optional text in the button.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": ""
        },
        {
            "name": "data-tchmi-ignore-escape-sequences",
            "propertyName": "IgnoreEscapeSequences",
            "propertySetterName": "setIgnoreEscapeSequences",
            "propertyGetterName": "getIgnoreEscapeSequences",
            "displayName": "IgnoreEscapeSequences",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 100,
            "type": "tchmi:general#/definitions/Boolean",
            "category": "Text",
            "description": "When set to true a backslash in a text will be shown verbatim in the HMI.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": false
        },
        {
            "name": "data-tchmi-text-horizontal-alignment",
            "propertyName": "TextHorizontalAlignment",
            "propertySetterName": "setTextHorizontalAlignment",
            "propertyGetterName": "getTextHorizontalAlignment",
            "displayName": "TextHorizontalAlignment",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 30,
            "type": "tchmi:framework#/definitions/HorizontalAlignment",
            "category": "Text",
            "description": "Defines the horizontal alignment of the text.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-text-vertical-alignment",
            "propertyName": "TextVerticalAlignment",
            "propertySetterName": "setTextVerticalAlignment",
            "propertyGetterName": "getTextVerticalAlignment",
            "displayName": "TextVerticalAlignment",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 30,
            "type": "tchmi:framework#/definitions/VerticalAlignment",
            "category": "Text",
            "description": "Defines the vertical alignment of the text.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-text-padding",
            "propertyName": "TextPadding",
            "propertySetterName": "setTextPadding",
            "propertyGetterName": "getTextPadding",
            "displayName": "TextPadding",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 55,
            "type": "tchmi:framework#/definitions/Padding",
            "category": "Text",
            "description": "The distance of the text to the border.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "allowSymbolExpressionsInObject": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-text-font-family",
            "propertyName": "TextFontFamily",
            "propertySetterName": "setTextFontFamily",
            "propertyGetterName": "getTextFontFamily",
            "displayName": "TextFontFamily",
            "visible": true,
            "themeable": "Standard",
            "displayPriority": 60,
            "type": "tchmi:framework#/definitions/FontFamily",
            "category": "Text",
            "description": "Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-text-font-size",
            "propertyName": "TextFontSize",
            "propertySetterName": "setTextFontSize",
            "propertyGetterName": "getTextFontSize",
            "displayName": "TextFontSize",
            "visible": true,
            "themeable": "Standard",
            "displayPriority": 30,
            "type": "tchmi:framework#/definitions/MeasurementValue",
            "category": "Text",
            "description": "The size of the font. Percent values are relative to the parent elements font size.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-text-font-size-unit",
            "propertyName": "TextFontSizeUnit",
            "propertySetterName": "setTextFontSizeUnit",
            "propertyGetterName": "getTextFontSizeUnit",
            "refTo": "TextFontSize",
            "displayName": "TextFontSizeUnit",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 30,
            "type": "tchmi:framework#/definitions/MeasurementUnit",
            "category": "Text",
            "description": "Could be 'px' or for relative sizing '%'.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": "px"
        },
        {
            "name": "data-tchmi-text-font-style",
            "propertyName": "TextFontStyle",
            "propertySetterName": "setTextFontStyle",
            "propertyGetterName": "getTextFontStyle",
            "displayName": "TextFontStyle",
            "visible": true,
            "themeable": "Standard",
            "displayPriority": 60,
            "type": "tchmi:framework#/definitions/FontStyle",
            "category": "Text",
            "description": "'Normal', 'Italic' (slanted with special glyphs), 'Oblique' (slanted normal glyphs) or 'Auto' for inherited.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": "Auto"
        },
        {
            "name": "data-tchmi-text-font-weight",
            "propertyName": "TextFontWeight",
            "propertySetterName": "setTextFontWeight",
            "propertyGetterName": "getTextFontWeight",
            "displayName": "TextFontWeight",
            "visible": true,
            "themeable": "Standard",
            "displayPriority": 60,
            "type": "tchmi:framework#/definitions/FontWeight",
            "category": "Text",
            "description": "'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": "Auto"
        },
        {
            "name": "data-tchmi-word-wrap",
            "propertyName": "WordWrap",
            "propertySetterName": "setWordWrap",
            "propertyGetterName": "getWordWrap",
            "displayName": "WordWrap",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 55,
            "type": "tchmi:general#/definitions/Boolean",
            "category": "Text",
            "description": "Wrap text that is too long to fit in a single line.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": true,
            "defaultValueInternal": false
        },
        {
            "name": "data-tchmi-icon",
            "propertyName": "Icon",
            "propertySetterName": "setIcon",
            "propertyGetterName": "getIcon",
            "displayName": "Icon",
            "visible": true,
            "themeable": "Standard",
            "displayPriority": 10,
            "type": "tchmi:framework#/definitions/Path",
            "category": "Icon",
            "description": "Defines an optional icon in the button.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-icon-width",
            "propertyName": "IconWidth",
            "propertySetterName": "setIconWidth",
            "propertyGetterName": "getIconWidth",
            "displayName": "IconWidth",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 20,
            "type": "tchmi:framework#/definitions/MeasurementValue",
            "category": "Icon",
            "description": "Defines the width of an optional icon.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-icon-width-unit",
            "propertyName": "IconWidthUnit",
            "propertySetterName": "setIconWidthUnit",
            "propertyGetterName": "getIconWidthUnit",
            "refTo": "IconWidth",
            "displayName": "IconWidthUnit",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 20,
            "type": "tchmi:framework#/definitions/MeasurementUnit",
            "category": "Icon",
            "description": "Could be 'px' or for relative positioning '%'.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": "px"
        },
        {
            "name": "data-tchmi-icon-height",
            "propertyName": "IconHeight",
            "propertySetterName": "setIconHeight",
            "propertyGetterName": "getIconHeight",
            "displayName": "IconHeight",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 20,
            "type": "tchmi:framework#/definitions/MeasurementValue",
            "category": "Icon",
            "description": "Defines the height of an optional icon.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-icon-height-unit",
            "propertyName": "IconHeightUnit",
            "propertySetterName": "setIconHeightUnit",
            "propertyGetterName": "getIconHeightUnit",
            "refTo": "IconHeight",
            "displayName": "IconHeightUnit",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 20,
            "type": "tchmi:framework#/definitions/MeasurementUnit",
            "category": "Icon",
            "description": "Could be 'px' or for relative positioning '%'.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": "px"
        },
        {
            "name": "data-tchmi-icon-horizontal-alignment",
            "propertyName": "IconHorizontalAlignment",
            "propertySetterName": "setIconHorizontalAlignment",
            "propertyGetterName": "getIconHorizontalAlignment",
            "displayName": "IconHorizontalAlignment",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 30,
            "type": "tchmi:framework#/definitions/HorizontalAlignment",
            "category": "Icon",
            "description": "Defines the horizontal alignment of an optional icon.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": "Center"
        },
        {
            "name": "data-tchmi-icon-vertical-alignment",
            "propertyName": "IconVerticalAlignment",
            "propertySetterName": "setIconVerticalAlignment",
            "propertyGetterName": "getIconVerticalAlignment",
            "displayName": "IconVerticalAlignment",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 30,
            "type": "tchmi:framework#/definitions/VerticalAlignment",
            "category": "Icon",
            "description": "Defines the vertical alignment of an optional icon.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "defaultValue": null,
            "defaultValueInternal": "Center"
        },
        {
            "name": "data-tchmi-icon-padding",
            "propertyName": "IconPadding",
            "propertySetterName": "setIconPadding",
            "propertyGetterName": "getIconPadding",
            "displayName": "IconPadding",
            "visible": true,
            "themeable": "Advanced",
            "displayPriority": 60,
            "type": "tchmi:framework#/definitions/Padding",
            "category": "Icon",
            "description": "The distance of the icon to the border.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "allowSymbolExpressionsInObject": true,
            "defaultValue": null,
            "defaultValueInternal": null
        },
        {
            "name": "data-tchmi-state-symbol",
            "propertyName": "StateSymbol",
            "propertySetterName": "setStateSymbol",
            "propertyGetterName": "getStateSymbol",
            "displayName": "StateSymbol",
            "visible": true,
            "themeable": "None",
            "displayPriority": 11,
            "type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiButton.StateSymbol",
            "category": "Common",
            "description": "A symbol of type tchmi:general#/definitions/Boolean which will be set to true if button is pressed and to false if button is released.",
            "readOnly": false,
            "bindable": true,
            "defaultBindingMode": "OneWay",
            "heritable": true,
            "allowSymbolReferencePreloading": true,
            "defaultValue": null,
            "defaultValueInternal": null
        }
    ],
    "attributeCategories": [
        {
            "name": "Text",
            "displayPriority": 500,
            "defaultCollapsed": true,
            "description": "Attributes defining the text of the control."
        },
        {
            "name": "Icon",
            "displayPriority": 310,
            "defaultCollapsed": true,
            "description": "Attributes defining an optional icon in the button."
        }
    ],
    "functions": [],
    "events": [
        {
            "name": ".onStateChanged",
            "displayName": ".onStateChanged",
            "visible": true,
            "displayPriority": 10,
            "category": "Control",
            "description": "The onStateChanged event is fired when the state of the button has changed.",
            "heritable": true
        },
        {
            "name": ".onStatePressed",
            "displayName": ".onStatePressed",
            "visible": true,
            "displayPriority": 10,
            "category": "Control",
            "description": "The onStatePressed event is fired when the state of the button has changed to true.",
            "heritable": true
        },
        {
            "name": ".onStateReleased",
            "displayName": ".onStateReleased",
            "visible": true,
            "displayPriority": 10,
            "category": "Control",
            "description": "The onStateReleased event is fired when the state of the button has changed to false.",
            "heritable": true
        }
    ],
    "dataTypes": [
        {
            "schema": "Schema/Types.Schema.json"
        }
    ]
}