--- a/svghmi/widget_switch.ysl2 Mon May 03 00:14:38 2021 +0200
+++ b/svghmi/widget_switch.ysl2 Tue May 18 09:22:17 2021 +0200
@@ -1,5 +1,25 @@
// widget_switch.ysl2
+widget_desc("Switch") {
+ longdesc
+ ||
+ Switch widget hides all subelements whose label do not match given
+ variable current value representation. For exemple if given variable type
+ is HMI_INT and value is 1, then elements with label '1' will be displayed.
+ Label can have comments, so '1#some comment' would also match. If matching
+ variable of type HMI_STRING, then double quotes must be used. For exemple,
+ '"hello"' or '"hello"#another comment' match HMI_STRING 'hello'.
+ ||
+
+ shortdesc > Show elements whose label match value.
+
+ // TODO: add optional format/precision argument to support floating points
+ // TODO: support (in)equations and ranges
+
+ path name="value" accepts="HMI_INT,HMI_STRING" > value to compare to labels
+
+}
+
widget_class("Switch")
||
frequency = 5;
@@ -15,7 +35,6 @@
||
widget_defs("Switch") {
- param "hmi_element";
| choices: [
const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!;
@@ -27,6 +46,7 @@
const "literal", "regexp:match(@inkscape:label,$regex)[2]";
| {
| elt:id("«@id»"),
+ // TODO : use style.display = "none" to hide element
| style:"«@style»",
| value:«$literal»
| }`if "position()!=last()" > ,`