svghmi/svghmi.js
branchsvghmi
changeset 3118 e704b0487515
parent 3098 5823b73b132f
child 3125 1fb0c07bd97b
equal deleted inserted replaced
3117:f058542d0caa 3118:e704b0487515
   425 };
   425 };
   426 
   426 
   427 const xmlns = "http://www.w3.org/2000/svg";
   427 const xmlns = "http://www.w3.org/2000/svg";
   428 var edit_callback;
   428 var edit_callback;
   429 const localtypes = {"PAGE_LOCAL":null, "HMI_LOCAL":null}
   429 const localtypes = {"PAGE_LOCAL":null, "HMI_LOCAL":null}
   430 function edit_value(path, valuetype, callback, initial, size) {
   430 function edit_value(path, valuetype, callback, initial) {
   431     if(valuetype in localtypes){
   431     if(valuetype in localtypes){
   432         valuetype = (typeof initial) == "number" ? "HMI_REAL" : "HMI_STRING";
   432         valuetype = (typeof initial) == "number" ? "HMI_REAL" : "HMI_STRING";
   433     }
   433     }
   434     let [keypadid, xcoord, ycoord] = keypads[valuetype];
   434     let [keypadid, xcoord, ycoord] = keypads[valuetype];
   435     edit_callback = callback;
   435     edit_callback = callback;
   436     let widget = hmi_widgets[keypadid];
   436     let widget = hmi_widgets[keypadid];
   437     widget.start_edit(path, valuetype, callback, initial, size);
   437     widget.start_edit(path, valuetype, callback, initial);
   438 };
   438 };
   439 
   439 
   440 var current_modal; /* TODO stack ?*/
   440 var current_modal; /* TODO stack ?*/
   441 
   441 
   442 function show_modal(size) {
   442 function show_modal() {
   443     let [element, parent] = detachable_elements[this.element.id];
   443     let [element, parent] = detachable_elements[this.element.id];
   444 
   444 
   445     tmpgrp = document.createElementNS(xmlns,"g");
   445     tmpgrp = document.createElementNS(xmlns,"g");
   446     tmpgrpattr = document.createAttribute("transform");
   446     tmpgrpattr = document.createAttribute("transform");
   447     let [xcoord,ycoord] = this.coordinates;
   447     let [xcoord,ycoord] = this.coordinates;
   448     let [xdest,ydest] = page_desc[current_visible_page].bbox;
   448     let [xdest,ydest] = page_desc[current_visible_page].bbox;
   449     if (typeof size === 'undefined'){
   449     tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")";
   450         tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")";
       
   451     }
       
   452     else{
       
   453         tmpgrpattr.value = "translate("+String(xdest-xcoord+size.x)+","+String(ydest-ycoord+size.y)+")";
       
   454     }
       
   455 
   450 
   456     tmpgrp.setAttributeNode(tmpgrpattr);
   451     tmpgrp.setAttributeNode(tmpgrpattr);
   457 
   452 
   458     tmpgrp.appendChild(element);
   453     tmpgrp.appendChild(element);
   459     parent.appendChild(tmpgrp);
   454     parent.appendChild(tmpgrp);