//>>built define(["dijit","dojo","dojox"],function(_1,_2,_3){ _2.provide("dojox.drawing.tools.Path"); _3.drawing.tools.Path=_3.drawing.util.oo.declare(_3.drawing.stencil.Path,function(){ this.pathMode=""; this.currentPathMode=""; this._started=false; this.oddEvenClicks=0; },{draws:true,onDown:function(_4){ if(!this._started){ this.onStartPath(_4); } },makeSubPath:function(_5){ if(_5){ if(this.currentPathMode=="Q"){ this.points.push({x:this.points[0].x,y:this.points[0].y}); } this.points.push({t:"Z"}); this.render(); } this.currentPathMode=""; this.pathMode="M"; },onStartPath:function(_6){ this._started=true; this.revertRenderHit=this.renderHit; this.renderHit=false; this.closePath=false; this.mouse.setEventMode("PathEdit"); this.closePoint={x:_6.x,y:_6.y}; this._kc1=this.connect(this.keys,"onEsc",this,function(){ this.onCompletePath(false); }); this._kc2=this.connect(this.keys,"onKeyUp",this,function(_7){ switch(_7.letter){ case "c": this.onCompletePath(true); break; case "l": this.pathMode="L"; break; case "m": this.makeSubPath(false); break; case "q": this.pathMode="Q"; break; case "s": this.pathMode="S"; break; case "z": this.makeSubPath(true); break; } }); },onCompletePath:function(_8){ this.remove(this.closeGuide,this.guide); var _9=this.getBounds(); if(_9.w2&&this.closeRadius>this.util.distance(_a.x,_a.y,this.closePoint.x,this.closePoint.y)){ this.onCompletePath(true); }else{ var p={x:_a.x,y:_a.y}; this.oddEvenClicks++; if(this.currentPathMode!=this.pathMode){ if(this.pathMode=="Q"){ p.t="Q"; this.oddEvenClicks=0; }else{ if(this.pathMode=="L"){ p.t="L"; }else{ if(this.pathMode=="M"){ p.t="M"; this.closePoint={x:_a.x,y:_a.y}; } } } this.currentPathMode=this.pathMode; } this.points.push(p); if(this.points.length>1){ this.remove(this.guide); this.render(); } } },createGuide:function(_b){ if(!this.points.length){ return; } var _c=[].concat(this.points); var pt={x:_b.x,y:_b.y}; if(this.currentPathMode=="Q"&&this.oddEvenClicks%2){ pt.t="L"; } this.points.push(pt); this.render(); this.points=_c; var _d=this.util.distance(_b.x,_b.y,this.closePoint.x,this.closePoint.y); if(this.points.length>1){ if(_dthis.closeRadius&&this.closeGuide){ this.remove(this.closeGuide); this.closeGuide=null; } } } },onMove:function(_e){ if(!this._started){ return; } this.createGuide(_e); },onDrag:function(_f){ if(!this._started){ return; } this.createGuide(_f); }}); _3.drawing.tools.Path.setup={name:"dojox.drawing.tools.Path",tooltip:"Path Tool",iconClass:"iconLine"}; _3.drawing.register(_3.drawing.tools.Path.setup,"tool"); });