svghmi/widget_customhtml.ysl2
author Edouard Tisserant
Wed, 01 Dec 2021 09:54:02 +0100
branchRuntimeLists
changeset 3394 9ea29ac18837
parent 3241 fe945f1f48b7
permissions -rw-r--r--
RUNTIME: Variable trace now uses limited list and buffer instead of flags in instance tree that was requiring systematical instance tree traversal, and worst size buffer. Forcing and retain still use tree traversal.
// 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");
}