svghmi/widget_customhtml.ysl2
author Edouard Tisserant
Fri, 17 Feb 2023 11:41:58 +0100
changeset 3727 265fc8001d0a
parent 3241 fe945f1f48b7
permissions -rw-r--r--
Runtime: Fix bugs in Linux target.

- next occurence absolute time computation failing on 32-bit because of casting
- PLC thread was started before period was set, potentially passing uninitialized timespec to clock_nanosleep()
// widget_customhtml.ysl2

widget_desc("CustomHtml") {
    longdesc
    ||
    CustomHtml widget allows insertion of HTML code in a svg:foreignObject.
    Widget content is replaced by foreignObject. HTML code is obtained from
    "code" labeled text content. HTML insert position and size is given with
    "container" labeled element.
    ||

    shortdesc > Custom HTML insert

    // TODO: support reload and POST based on variable content
}

widget_class("CustomHtml"){
    ||
        frequency = 5;
        widget_size = undefined;

        dispatch(value) {
            this.request_animate();
        }

        animate(){
        }

        init() {
            this.widget_size = this.container_elt.getBBox();
            this.element.innerHTML ='<foreignObject x="'+
                this.widget_size.x+'" y="'+this.widget_size.y+
                '" width="'+this.widget_size.width+'" height="'+this.widget_size.height+'"> '+
                this.code_elt.textContent+
                ' </foreignObject>';
        }
    ||
}


widget_defs("CustomHtml") {
    labels("container code");
}