svghmi/svghmi.js
branchsvghmi
changeset 2917 c8d923dd707f
parent 2916 4f3b130fd197
child 2920 3ee337c8c769
--- 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;
+};