// widget_input.ysl2 template "widget[@type='Input']", mode="widget_defs" { param "hmi_element"; optional_labels("key_pos"); const "value_elt" { optional_labels("value"); } const "have_value","string-length($value_elt)>0"; value "$value_elt"; if "$have_value" | frequency: 5, | last_val: undefined, | dispatch: function(value) { | this.last_val = value; if "$have_value" | this.value_elt.textContent = String(value); | }, const "edit_elt_id","$hmi_element/*[@inkscape:label='edit'][1]/@id"; | init: function() { if "$edit_elt_id" { | id("«$edit_elt_id»").setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_edit_click()"); } foreach "$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]" { | id("«@id»").setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_op_click('«func:escape_quotes(@inkscape:label)»')"); } | }, | on_op_click: function(opstr) { | let new_val = this.change_hmi_value(0, opstr); // if "$have_value"{ // | this.value_elt.textContent = String(new_val); // /* TODO gray out value until refreshed */ // } | }, | on_edit_click: function(opstr) { | var size = (typeof this.key_pos_elt !== 'undefined') ? this.key_pos_elt.getBBox() : undefined | edit_value("«path/@value»", "«path/@type»", this, this.last_val, size); | }, | edit_callback: function(new_val) { | this.apply_hmi_value(0, new_val); // if "$have_value"{ // | this.value_elt.textContent = String(new_val); // /* TODO gray out value until refreshed */ // } | }, }