edouard@2883: // widget_switch.ysl2 Edouard@2779: edouard@2962: template "widget[@type='Switch']", mode="widget_class" edouard@2962: || edouard@2962: class SwitchWidget extends Widget{ edouard@2962: frequency = 5; edouard@2962: dispatch(value) { edouard@2962: for(let choice of this.choices){ edouard@2962: if(value != choice.value){ edouard@2962: choice.elt.setAttribute("style", "display:none"); edouard@2962: } else { edouard@2962: choice.elt.setAttribute("style", choice.style); edouard@2962: } edouard@2962: } edouard@2962: } edouard@2962: } edouard@2962: || edouard@2962: edouard@2883: template "widget[@type='Switch']", mode="widget_defs" { edouard@2883: param "hmi_element"; edouard@2883: | choices: [ Edouard@2907: const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!; Edouard@2969: foreach "$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]" { edouard@2883: const "literal", "regexp:match(@inkscape:label,$regex)[2]"; edouard@2883: | { edouard@2883: | elt:id("«@id»"), edouard@2883: | style:"«@style»", edouard@2883: | value:«$literal» edouard@2883: | }`if "position()!=last()" > ,` Edouard@2792: } edouard@2883: | ], Edouard@2753: }