svghmi/widget_button.ysl2
branchsvghmi
changeset 3056 827bf284feec
parent 3024 0a9f6f29b7dd
child 3058 6ea4b7e1a9ed
--- 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() {