svghmi/widget_textlist.ysl2
author Edouard Tisserant
Mon, 08 Nov 2021 14:06:29 +0100
changeset 3385 18621ce81f5f
parent 3354 819b0bdfa705
child 3556 5d73bed497de
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_textlist.ysl2

widget_desc("TextList") {
    longdesc
    ||
    TextList widget is a svg:group, list items are labeled elements
    in that group.

    To use a TextList, clone (svg:use) one of the items inside the widget 
    that expects a TextList.

    In this list, (translated) text content is what matters. Nevertheless
    text style of the cloned item will be applied in client widget.
    ||

    shortdesc > A named list of ordered texts 

    arg name="listname"
}

widget_defs("TextList") {
    |     texts: [
    foreach "func:refered_elements($hmi_element/*[@inkscape:label])[self::svg:text]" {
    |         id("«@id»"),
    }
    // could find a proper way in xpath to reverse()
    |     ].reverse(),
}