svghmi/widget_switch.ysl2
branchsvghmi
changeset 3241 fe945f1f48b7
parent 3232 7bdb766c2a4d
child 3386 608f48ad3dfc
--- 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()" > ,`