svghmi/widget_textstylelist.ysl2
author Edouard Tisserant
Thu, 17 Nov 2022 11:08:36 +0100
changeset 3682 c613afdab571
parent 3556 5d73bed497de
permissions -rw-r--r--
IDE: Optimization of modification events processing in text editors.

Too many modifications types where registered, and then too many events were fired.
Also, in case of uninterrupted sequence of events, updates to the model is deferred to the end of that sequence (wx.Callafter).
// widget_textstylelist.ysl2

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

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

    In this list, only style matters. Text content is ignored.
    ||

    shortdesc > A named list of named texts

    arg name="listname"
}

widget_defs("TextStyleList") {
    |     styles: {
    foreach "$hmi_element/*[@inkscape:label]" {
        const "style", "func:refered_elements(.)[self::svg:text]/@style";
    |         «@inkscape:label»: "«$style»",
    }
    |     },
}

widget_class("TextStyleList");