//>>built
define("dojox/gfx/Mover","dojo/_base/lang dojo/_base/array dojo/_base/declare dojo/on dojo/touch dojo/_base/event".split(" "),function(d,h,k,e,f,g){return k("dojox.gfx.Mover",null,{constructor:function(a,b,c){this.shape=a;this.lastX=b.clientX;this.lastY=b.clientY;a=this.host=c;b=document;c=e(b,f.move,d.hitch(this,"onFirstMove"));this.events=[e(b,f.move,d.hitch(this,"onMouseMove")),e(b,f.release,d.hitch(this,"destroy")),e(b,"dragstart",d.hitch(g,"stop")),e(b,"selectstart",d.hitch(g,"stop")),c];if(a&&
a.onMoveStart)a.onMoveStart(this)},onMouseMove:function(a){var b=a.clientX,c=a.clientY;this.host.onMove(this,{dx:b-this.lastX,dy:c-this.lastY},a);this.lastX=b;this.lastY=c;g.stop(a)},onFirstMove:function(){this.host.onFirstMove(this);this.events.pop().remove()},destroy:function(){h.forEach(this.events,function(a){a.remove()});var a=this.host;if(a&&a.onMoveStop)a.onMoveStop(this);this.events=this.shape=null}})});