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");
}