svghmi/widget_button.ysl2
author Edouard Tisserant <edouard.tisserant@gmail.com>
Tue, 04 Aug 2020 11:53:39 +0200
branchsvghmi
changeset 3004 705e34c6fe93
parent 3000 a9a45977bac0
child 3009 7c6960f09881
permissions -rw-r--r--
SVGHMI: More JS code refactoring : change_hmi_value and apply_hmi_value now methods of widget class.
// widget_button.ysl2

template "widget[@type='Button']", mode="widget_defs" {
    param "hmi_element";
    optional_labels("active inactive");
    | frequency: 5,
    | on_mouse_down: function(evt) {
    |     if (this.active_style && this.inactive_style) {
    |         this.active_elt.setAttribute("style", this.active_style);
    |         this.inactive_elt.setAttribute("style", "display:none");
    |     }
    |     this.apply_hmi_value(0, 1);
    | },
    | on_mouse_up: function(evt) {
    |     if (this.active_style && this.inactive_style) {
    |         this.active_elt.setAttribute("style", "display:none");
    |         this.inactive_elt.setAttribute("style", this.inactive_style);
    |     }
    |     this.apply_hmi_value(0, 0);
    | },
    | active_style: undefined,
    | inactive_style: undefined,
    | init: function() {
    |   this.active_style = this.active_elt ? this.active_elt.style.cssText : undefined;
    |   this.inactive_style = this.inactive_elt ? this.inactive_elt.style.cssText : undefined;
    |   if (this.active_style && this.inactive_style) {
    |       this.active_elt.setAttribute("style", "display:none");
    |       this.inactive_elt.setAttribute("style", this.inactive_style);
    |   }
    |   this.element.setAttribute("onmousedown", "hmi_widgets['«$hmi_element/@id»'].on_mouse_down(evt)");
    |   this.element.setAttribute("onmouseup", "hmi_widgets['«$hmi_element/@id»'].on_mouse_up(evt)");
    | },
}