RUNTIME: Variable forcing now uses limited list and buffer instead of systematical instance tree traversal and in-tree "fvalue" to keep track of forced value for pointed variables (external, located). Pointer swapping is performed when forcing externals and located, with backup being restored when forcing is reset. Retain still uses tree traversal.
// widget_list.ysl2
widget_desc("List") {
longdesc
||
List widget is a svg:group, list items are labeled elements
in that group.
To use a List, clone (svg:use) one of the items inside the widget that
expects a List.
Positions of items are relative to each other, and they must all be in the
same place. In order to make editing easier it is therefore recommanded to
make stacked clones of svg elements spread nearby the list.
||
shortdesc > A named list of named graphical elements
arg name="listname"
}
widget_defs("List") {
| items: {
foreach "$hmi_element/*[@inkscape:label]" {
| "«@inkscape:label»": "«@id»",
}
| },
}