SVGHMI: Widget transform before DnD now should have HMI path as a parameter, but this path isn't computed for some reason... WIP.
// widget_switch.ysl2
template "widget[@type='Switch']", mode="widget_class"
||
class SwitchWidget extends Widget{
frequency = 5;
dispatch(value) {
for(let choice of this.choices){
if(value != choice.value){
choice.elt.setAttribute("style", "display:none");
} else {
choice.elt.setAttribute("style", choice.style);
}
}
}
}
||
template "widget[@type='Switch']", mode="widget_defs" {
param "hmi_element";
| choices: [
const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!;
const "subelts", "$result_widgets[@id = $hmi_element/@id]//*";
const "subwidgets", "$subelts//*[@id = $hmi_widgets/@id]";
const "accepted", "$subelts[not(ancestor-or-self::*/@id = $subwidgets/@id)]";
foreach "$accepted[regexp:test(@inkscape:label,$regex)]" {
const "literal", "regexp:match(@inkscape:label,$regex)[2]";
| {
| elt:id("«@id»"),
| style:"«@style»",
| value:«$literal»
| }`if "position()!=last()" > ,`
}
| ],
}