RUNTIME: Variable forcing now uses limited list and buffer instead of systematical instance tree traversal and in-tree "fvalue" to keep track of forced value for pointed variables (external, located). Pointer swapping is performed when forcing externals and located, with backup being restored when forcing is reset. Retain still uses tree traversal.
// widget_back.ysl2
widget_desc("Back") {
longdesc
||
Back widget brings focus back to previous page in history when clicked.
||
shortdesc > Jump to previous page
}
// TODO: use es6
widget_class("Back")
||
on_click(evt) {
if(jump_history.length > 1){
jump_history.pop();
let [page_name, index] = jump_history.pop();
switch_page(page_name, index);
}
}
init() {
this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)");
}
||