Develop and Download Open Source Software

Browse Subversion Repository

Diff of /SvgEditor.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 28 by isao-hara, Thu Jul 22 06:39:22 2010 UTC revision 29 by isao-hara, Thu Jul 22 08:53:05 2010 UTC
# Line 1776  function onTouchStartCore(){ Line 1776  function onTouchStartCore(){
1776    
1777  function onDoubleTap(e){  function onDoubleTap(e){
1778    if(selectedItems.length == 1 ){    if(selectedItems.length == 1 ){
1779        svg_select.setAttribute("visibility","hidden");
1780    
1781      var obj = selectedItems[0];      var obj = selectedItems[0];
1782      switch(obj.tagName){      switch(obj.tagName){
1783        case 'svg:text':        case 'svg:text':
1784          case 'text':
1785          var txt = trim(obj.textContent);          var txt = trim(obj.textContent);
1786          var size = parseInt(obj.getAttribute("font-size"));          var size = parseInt(obj.getAttribute("font-size"));
1787          var x = parseInt(obj.getAttribute("x"));          var x = parseInt(obj.getAttribute("x"));
# Line 1792  function onDoubleTap(e){ Line 1795  function onDoubleTap(e){
1795        default:        default:
1796          break;          break;
1797      }      }
1798       return false;
1799    }    }
1800  }  }
1801    
# Line 1891  function moveSelectedRectangle(dx, dy){ Line 1895  function moveSelectedRectangle(dx, dy){
1895  function updateSelectedRectangle(){  function updateSelectedRectangle(){
1896     if(!svg_select) return;     if(!svg_select) return;
1897     if(selectedItems.length > 0){     if(selectedItems.length > 0){
1898       svg_select.setAttribute("visibility","visible;");       svg_select.setAttribute("visibility","visible");
1899     }else{     }else{
1900       svg_select.setAttribute("visibility","hidden;");       svg_select.setAttribute("visibility","hidden");
1901     }     }
1902  }  }
1903    
# Line 1984  function svgInputTextExec(e){ Line 1988  function svgInputTextExec(e){
1988    var inputform = document.getElementById('svg_input');    var inputform = document.getElementById('svg_input');
1989    var color=document.getElementById('svg_color');    var color=document.getElementById('svg_color');
1990    var size=document.getElementById('svg_size');    var size=document.getElementById('svg_size');
1991      if(!color || !size) return;
1992    var y = parseInt(inputform.style.top) + parseInt(size.value)*0.8 + 12;    var y = parseInt(inputform.style.top) + parseInt(size.value)*0.8 + 12;
1993    var x = parseInt(inputform.style.left) + 12;    var x = parseInt(inputform.style.left) + 12;
1994    if(inputform.value){    if(inputform.value){
# Line 2031  function putInputForm(x, y, txt, size, i Line 2036  function putInputForm(x, y, txt, size, i
2036      inputform = document.createElement('input');      inputform = document.createElement('input');
2037      inputform.setAttribute("id", "svg_input");      inputform.setAttribute("id", "svg_input");
2038      inputform.setAttribute("style", "position:absolute;top:0px;left:0px; border:0px none");      inputform.setAttribute("style", "position:absolute;top:0px;left:0px; border:0px none");
2039      if(document.addEventListner){      preview.appendChild(inputform);
2040        if(id){    }
2041          inputform.addEventListener("onChange", svgModifyTextExec,false);  
2042        }else{    if(document.addEventListner){
2043          inputform.addEventListener("onChange", svgInputTextExec,false);      if(id){
2044        }        inputform.addEventListener("onChange", svgModifyTextExec,false);
       inputform.addEventListener("onkeydown", svgInputFormAdjust,false);  
2045      }else{      }else{
2046        if(id){        inputform.addEventListener("onChange", svgInputTextExec,false);
         inputform.setAttribute("onChange", "svgModifyTextExec()");  
       }else{  
         inputform.setAttribute("onChange", "svgInputTextExec()");  
       }  
       inputform.setAttribute("onkeydown", "svgInputFormAdjust()");  
2047      }      }
2048      preview.appendChild(inputform);      inputform.addEventListener("onkeydown", svgInputFormAdjust,false);
2049      }else{
2050        if(id){
2051          inputform.setAttribute("onChange", "svgModifyTextExec()");
2052        }else{
2053          inputform.setAttribute("onChange", "svgInputTextExec()");
2054        }
2055        inputform.setAttribute("onkeydown", "svgInputFormAdjust()");
2056    }    }
2057    
2058    inputform.setAttribute("type", "text");    inputform.setAttribute("type", "text");
# Line 2219  function onMouseDown(e){ Line 2225  function onMouseDown(e){
2225    ey=e.pageY;    ey=e.pageY;
2226    
2227    if(isChildById(e.target, 'preview') || e.target.id == 'preview') {    if(isChildById(e.target, 'preview') || e.target.id == 'preview') {
2228      onTouchStartCore();      if(editingTextObj){
2229           var inputform = document.getElementById('svg_input');
2230           inputform.setAttribute("type", "hidden");
2231           editingTextObj.style.display='block';
2232           editingTextObj=null;
2233        }
2234    
2235        if(e.altKey){
2236          targetItem = selectedItems[0];
2237          if(targetItem){
2238            svg_wo = targetItem.getAttribute("width");
2239            svg_ho = targetItem.getAttribute("height");
2240            svg_ro = targetItem.getAttribute("r");
2241            svg_rxo = targetItem.getAttribute("rx");
2242            svg_ryo = targetItem.getAttribute("ry");
2243            svg_fsize = targetItem.getAttribute("font-size");
2244          }else{
2245            svg_wo = null;
2246            svg_ho = null;
2247            svg_ro = null;
2248            svg_rxo = null;
2249            svg_ryo = null;
2250            svg_fsize = null;
2251          }
2252        }else{
2253          onTouchStartCore();
2254        }
2255      updateSelectedRectangle();      updateSelectedRectangle();
2256      return false;      return false;
2257    }else if(isChildById(e.target, 'color-palette') && e.target.tagName == 'DIV'){    }else if(isChildById(e.target, 'color-palette') && e.target.tagName == 'DIV'){
# Line 2242  function onMouseDown(e){ Line 2274  function onMouseDown(e){
2274   return true;   return true;
2275  }  }
2276    
   
2277  function onMouseMove(e){  function onMouseMove(e){
  if(mouse_state != 1) return true;  
2278   if(!isChildById(e.target, 'preview') && e.target.id != 'preview') { return true; }   if(!isChildById(e.target, 'preview') && e.target.id != 'preview') { return true; }
2279    
2280   onTouchMoveCode1(e.pageX, e.pageY);   if(mouse_state == 1) {
2281      if(e.altKey){
2282        var dx = sx-e.pageX;
2283        var dy = sy-e.pageY;
2284        var th = Math.abs(Math.atan2(dy , dx)/Math.PI *180);
2285        var scale;
2286    
2287        if(th > 165 ||  th < 25){
2288          svg_scale_dir = 'x';
2289          scale = -dx/50;
2290        }else if(th > 65 &&  th < 115){
2291          svg_scale_dir = 'y';
2292          scale = -dy/50;
2293        }else{
2294          svg_scale_dir = null;
2295          if(dx > 0 && dy > 0) scale = -dx*dy/2500;
2296          else if(dx < 0 && dy < 0) scale = dx*dy/2500;
2297          else scale = 1;
2298        }
2299    
2300       if(scale >= 0){
2301        if(scale < 1) scale=1;
2302       }else{
2303        if(scale > -1) scale=1;
2304        else{
2305           scale= -1/scale;
2306        }
2307       }
2308        if(targetItem){
2309          if (svg_wo && svg_scale_dir != 'y') targetItem.setAttribute("width", Math.round(svg_wo*scale ));
2310          if (svg_ho && svg_scale_dir != 'x') targetItem.setAttribute("height", Math.round(svg_ho*scale ));
2311          if (svg_ro) targetItem.setAttribute("r", Math.round(svg_ro*scale ));
2312          if (svg_rxo && svg_scale_dir != 'y') targetItem.setAttribute("rx", Math.round(svg_rxo*scale) );
2313          if (svg_ryo && svg_scale_dir != 'x') targetItem.setAttribute("ry", Math.round(svg_ryo*scale) );
2314          if (svg_fsize) targetItem.setAttribute("font-size", Math.round(svg_fsize*scale) );
2315    
2316          updateShowMenu();
2317        }
2318      }else {
2319       onTouchMoveCode1(e.pageX, e.pageY);
2320      }
2321     }
2322    
 // sx=e.pageX;  
 // sy=e.pageY;  
2323   return false;   return false;
2324  }  }
2325    
# Line 2287  if(!navigator.userAgent.match("iPad")){ Line 2356  if(!navigator.userAgent.match("iPad")){
2356    document.onmousedown=onMouseDown;    document.onmousedown=onMouseDown;
2357    document.onmousemove=onMouseMove;    document.onmousemove=onMouseMove;
2358    document.onmouseup=onMouseUp;    document.onmouseup=onMouseUp;
2359      document.ondblclick=onDoubleTap;
2360  }  }
2361    

Legend:
Removed from v.28  
changed lines
  Added in v.29

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26