Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / gfx / Mover.js @ 12

History | View | Annotate | Download (1.17 KB)

1
/*
2
        Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3
        Available via Academic Free License >= 2.1 OR the modified BSD license.
4
        see: http://dojotoolkit.org/license for details
5
*/
6

    
7

    
8
if(!dojo._hasResource["dojox.gfx.Mover"]){
9
dojo._hasResource["dojox.gfx.Mover"]=true;
10
dojo.provide("dojox.gfx.Mover");
11
dojo.declare("dojox.gfx.Mover",null,{constructor:function(_1,e,_2){
12
this.shape=_1;
13
this.lastX=e.clientX;
14
this.lastY=e.clientY;
15
var h=this.host=_2,d=document,_3=dojo.connect(d,"onmousemove",this,"onFirstMove");
16
this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"destroy"),dojo.connect(d,"ondragstart",dojo,"stopEvent"),dojo.connect(d,"onselectstart",dojo,"stopEvent"),_3];
17
if(h&&h.onMoveStart){
18
h.onMoveStart(this);
19
}
20
},onMouseMove:function(e){
21
var x=e.clientX;
22
var y=e.clientY;
23
this.host.onMove(this,{dx:x-this.lastX,dy:y-this.lastY});
24
this.lastX=x;
25
this.lastY=y;
26
dojo.stopEvent(e);
27
},onFirstMove:function(){
28
this.host.onFirstMove(this);
29
dojo.disconnect(this.events.pop());
30
},destroy:function(){
31
dojo.forEach(this.events,dojo.disconnect);
32
var h=this.host;
33
if(h&&h.onMoveStop){
34
h.onMoveStop(this);
35
}
36
this.events=this.shape=null;
37
}});
38
}