--- a/svghmi/widgets_common.ysl2 Fri May 08 16:44:20 2020 +0200
+++ b/svghmi/widgets_common.ysl2 Fri May 08 16:47:52 2020 +0200
@@ -47,6 +47,31 @@
apply "$widget", mode="widget_defs" with "hmi_element",".";
apply "$widget", mode="widget_subscribe" with "hmi_element",".";
| }`if "position()!=last()" > ,`
+def "func:unique_types" { + param "elts_with_type"; + when "count($elts_with_type) > 1" { + const "prior_results","func:unique_types($elts_with_type[position()!=last()])"; + when "$elts_with_type[last()][@type = $prior_results/@type]"{ + result "$prior_results"; + result "$prior_results | $elts_with_type[last()]"; + result "$elts_with_type"; +emit "preamble:hmi-classes" { + const "used_widget_types", "func:unique_types($parsed_widgets/widget)"; + apply "$used_widget_types", mode="widget_class"; emit "preamble:hmi-elements" {