diff -r 4f3b130fd197 -r c8d923dd707f svghmi/svghmi.js --- a/svghmi/svghmi.js Fri Apr 03 09:52:57 2020 +0200 +++ b/svghmi/svghmi.js Fri Apr 03 14:37:41 2020 +0200 @@ -474,11 +474,19 @@ let [keypadid, xcoord, ycoord] = keypads[valuetype]; console.log('XXX TODO : Edit value', path, valuetype, callback, initial, keypadid); edit_callback = callback; - - let [element, parent] = detachable_elements[keypadid]; + let widget = hmi_widgets[keypadid]; + widget.start_edit(path, valuetype, callback, initial); +}; + +var current_modal; /* TODO stack ?*/ + +function show_modal() { + let [element, parent] = detachable_elements[this.element.id]; + tmpgrp = document.createElementNS(xmlns,"g"); tmpgrpattr = document.createAttribute("transform"); + let [xcoord,ycoord] = this.coordinates; let [xdest,ydest] = page_desc[current_visible_page].bbox; tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")"; tmpgrp.setAttributeNode(tmpgrpattr); @@ -486,5 +494,14 @@ tmpgrp.appendChild(element); parent.appendChild(tmpgrp); -}; - + current_modal = [this.element.id, tmpgrp]; +}; + +function end_modal() { + let [eltid, tmpgrp] = current_modal; + let [element, parent] = detachable_elements[this.element.id]; + + parent.removeChild(tmpgrp); + + current_modal = undefined; +};