472 function edit_value(path, valuetype, callback, initial) { |
472 function edit_value(path, valuetype, callback, initial) { |
473 |
473 |
474 let [keypadid, xcoord, ycoord] = keypads[valuetype]; |
474 let [keypadid, xcoord, ycoord] = keypads[valuetype]; |
475 console.log('XXX TODO : Edit value', path, valuetype, callback, initial, keypadid); |
475 console.log('XXX TODO : Edit value', path, valuetype, callback, initial, keypadid); |
476 edit_callback = callback; |
476 edit_callback = callback; |
477 |
477 let widget = hmi_widgets[keypadid]; |
478 let [element, parent] = detachable_elements[keypadid]; |
478 widget.start_edit(path, valuetype, callback, initial); |
|
479 }; |
|
480 |
|
481 var current_modal; /* TODO stack ?*/ |
|
482 |
|
483 function show_modal() { |
|
484 let [element, parent] = detachable_elements[this.element.id]; |
|
485 |
479 tmpgrp = document.createElementNS(xmlns,"g"); |
486 tmpgrp = document.createElementNS(xmlns,"g"); |
480 tmpgrpattr = document.createAttribute("transform"); |
487 tmpgrpattr = document.createAttribute("transform"); |
481 |
488 |
|
489 let [xcoord,ycoord] = this.coordinates; |
482 let [xdest,ydest] = page_desc[current_visible_page].bbox; |
490 let [xdest,ydest] = page_desc[current_visible_page].bbox; |
483 tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")"; |
491 tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")"; |
484 tmpgrp.setAttributeNode(tmpgrpattr); |
492 tmpgrp.setAttributeNode(tmpgrpattr); |
485 |
493 |
486 tmpgrp.appendChild(element); |
494 tmpgrp.appendChild(element); |
487 parent.appendChild(tmpgrp); |
495 parent.appendChild(tmpgrp); |
488 |
496 |
489 }; |
497 current_modal = [this.element.id, tmpgrp]; |
490 |
498 }; |
|
499 |
|
500 function end_modal() { |
|
501 let [eltid, tmpgrp] = current_modal; |
|
502 let [element, parent] = detachable_elements[this.element.id]; |
|
503 |
|
504 parent.removeChild(tmpgrp); |
|
505 |
|
506 current_modal = undefined; |
|
507 }; |