svghmi/widget_list.ysl2
author Edouard Tisserant
Mon, 08 Nov 2021 14:06:29 +0100
changeset 3385 18621ce81f5f
parent 3352 3a138ccdfafa
child 3386 608f48ad3dfc
permissions -rw-r--r--
SVGHMI: Changes /CURRENT_PAGE_* behaviour to prevent problem whith multiclient : all clients were switching page when one was jumping.
- now PLC have to prefix page name with "!" to order page switch.
- HMI do not prefix with "!" when jumping, this avoiding looping incidently
- In case of multiple client:
CURRENT_PAGE reflects current page of last client hwo did jump
Setting CURRENT_PAGE with "!" affects all clients simultaneously
// 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»",
    }
    |     },
}