# HG changeset patch # User usveticic # Date 1596633279 -7200 # Node ID 601c6dbc1da74f20737fbfcc30c7903f7b82f8bf # Parent 893cc309f5e245424036b514cd6bb1f4ca2f2ce9 Reworked togglebutton widget to extand class widget diff -r 893cc309f5e2 -r 601c6dbc1da7 svghmi/widget_tooglebutton.ysl2 --- a/svghmi/widget_tooglebutton.ysl2 Wed Aug 05 15:13:59 2020 +0200 +++ b/svghmi/widget_tooglebutton.ysl2 Wed Aug 05 15:14:39 2020 +0200 @@ -1,30 +1,41 @@ // widget_tooglebutton.ysl2 + +template "widget[@type='ToggleButton']", mode="widget_class" + || + class ToggleButtonWidget extends Widget{ + frequency = 5; + state = 0; + active_style = undefined; + inactive_style = undefined; + + dispatch(value) { + this.state = value; + if (this.state) { + this.active_elt.setAttribute("style", this.active_style); + this.inactive_elt.setAttribute("style", "display:none"); + this.state = 0; + } else { + this.inactive_elt.setAttribute("style", this.inactive_style); + this.active_elt.setAttribute("style", "display:none"); + this.state = 1; + } + } + + on_click(evt) { + change_hmi_value(this.indexes[0], "="+this.state); + } + + init() { + this.active_style = this.active_elt.style.cssText; + this.inactive_style = this.inactive_elt.style.cssText; + this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); + } + } + || + template "widget[@type='ToggleButton']", mode="widget_defs" { param "hmi_element"; labels("active inactive"); - | frequency: 5, - | state: 0, - | dispatch: function(value) { - | this.state = value; - | if (this.state) { - | this.active_elt.setAttribute("style", this.active_style); - | this.inactive_elt.setAttribute("style", "display:none"); - | this.state = 0; - | } else { - | this.inactive_elt.setAttribute("style", this.inactive_style); - | this.active_elt.setAttribute("style", "display:none"); - | this.state = 1; - | } - | }, - | on_click: function(evt) { - | this.apply_hmi_value(0, this.state); - | }, - | active_style: undefined, - | inactive_style: undefined, - | init: function() { - | this.active_style = this.active_elt.style.cssText; - | this.inactive_style = this.inactive_elt.style.cssText; - | this.element.setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_click(evt)"); - | }, + |, }