svghmi/widget_customhtml.ysl2
author Edouard Tisserant <edouard.tisserant@gmail.com>
Tue, 07 Sep 2021 09:08:40 +0200
branchwxPython4
changeset 3308 358ccd42e052
parent 3241 fe945f1f48b7
permissions -rw-r--r--
Runtime: avoids using "pipe to self" bailout unblocking trick on windows, since select() only takes sockets.
// 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");
}