svghmi/widget_tooglebutton.ysl2
author Edouard Tisserant
Thu, 04 Jun 2020 11:14:21 +0200
branchsvghmi
changeset 2980 2a21d6060d64
parent 2977 82f062408e70
child 3004 705e34c6fe93
permissions -rw-r--r--
SVGHMI: add "unsubscribable" property to widgets in order to generalize what already happens for jump buttons.
In most cases jump buttons do not really subscribe to pointed HMI variable, path is given as a relative page jump path. When widget.unsubscribable is set to true, no subscription is made on page switch, but still offset is updated.
This fixes bug happening on relative jump buttons without "disabled" element where offset did not change on relative page switch.
2977
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     1
// widget_tooglebutton.ysl2
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     2
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     3
template "widget[@type='ToggleButton']", mode="widget_defs" {
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     4
    param "hmi_element";
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     5
    labels("active inactive");
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     6
    |     frequency: 5,
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     7
    |     state: 0,
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     8
    |     dispatch: function(value) {
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
     9
    |         this.state = value;
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    10
    |         if (this.state) {
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    11
    |             this.active_elt.setAttribute("style", this.active_style);
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    12
    |             this.inactive_elt.setAttribute("style", "display:none");
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    13
    |             this.state = 0;
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    14
    |         } else {
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    15
    |             this.inactive_elt.setAttribute("style", this.inactive_style);
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    16
    |             this.active_elt.setAttribute("style", "display:none");
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    17
    |             this.state = 1;
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    18
    |         }
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    19
    |     },
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    20
    |     on_click: function(evt) {
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    21
    |         change_hmi_value(this.indexes[0], "="+this.state);
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    22
    |     },
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    23
    |     active_style: undefined,
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    24
    |     inactive_style: undefined,
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    25
    |     init: function() {
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    26
    |         this.active_style = this.active_elt.style.cssText;
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    27
    |         this.inactive_style = this.inactive_elt.style.cssText;
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    28
    |         this.element.setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_click(evt)");
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    29
    |     },
82f062408e70 SVGHMI: Added widget toggleButton.
dgaberscek
parents:
diff changeset
    30
}