diff -r f6d428330e04 -r 827bf284feec svghmi/widget_button.ysl2 --- a/svghmi/widget_button.ysl2 Tue Aug 18 11:42:28 2020 +0200 +++ b/svghmi/widget_button.ysl2 Wed Sep 16 09:41:52 2020 +0200 @@ -5,23 +5,40 @@ class ButtonWidget extends Widget{ frequency = 5; state = 0; + plc_lock = false; active_style = undefined; inactive_style = undefined; + dispatch(value) { + if(value){ + this.button_release(); + } + } + on_mouse_down(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); + this.plc_lock = false; } on_mouse_up(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); + this.button_release(); + } + + button_release(){ + if(!this.plc_lock){ + this.plc_lock = true; + } + else{ + 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); + } } init() {