]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/dnd/Moveable.js
2 Copyright (c) 2004-2011, 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
8 define("dojo/dnd/Moveable",["../main","../Evented","../touch","./Mover"],function(_1
,_2
,_3
){_1
.declare("dojo.dnd.Moveable",[_2
],{handle
:"",delay
:0,skip
:false,constructor:function(_4
,_5
){this.node
=_1
.byId(_4
);if(!_5
){_5
={};}this.handle
=_5
.handle
?_1
.byId(_5
.handle
):null;if(!this.handle
){this.handle
=this.node
;}this.delay
=_5
.delay
>0?_5
.delay
:0;this.skip
=_5
.skip
;this.mover
=_5
.mover
?_5
.mover
:_1
.dnd
.Mover
;this.events
=[_1
.connect(this.handle
,_3
.press
,this,"onMouseDown"),_1
.connect(this.handle
,"ondragstart",this,"onSelectStart"),_1
.connect(this.handle
,"onselectstart",this,"onSelectStart")];},markupFactory:function(_6
,_7
,_8
){return new _8(_7
,_6
);},destroy:function(){_1
.forEach(this.events
,_1
.disconnect
);this.events
=this.node
=this.handle
=null;},onMouseDown:function(e
){if(this.skip
&&_1
.dnd
.isFormElement(e
)){return;}if(this.delay
){this.events
.push(_1
.connect(this.handle
,_3
.move,this,"onMouseMove"),_1
.connect(this.handle
,_3
.release
,this,"onMouseUp"));this._lastX
=e
.pageX
;this._lastY
=e
.pageY
;}else{this.onDragDetected(e
);}_1
.stopEvent(e
);},onMouseMove:function(e
){if(Math
.abs(e
.pageX
-this._lastX
)>this.delay
||Math
.abs(e
.pageY
-this._lastY
)>this.delay
){this.onMouseUp(e
);this.onDragDetected(e
);}_1
.stopEvent(e
);},onMouseUp:function(e
){for(var i
=0;i
<2;++i
){_1
.disconnect(this.events
.pop());}_1
.stopEvent(e
);},onSelectStart:function(e
){if(!this.skip
||!_1
.dnd
.isFormElement(e
)){_1
.stopEvent(e
);}},onDragDetected:function(e
){new this.mover(this.node
,e
,this);},onMoveStart:function(_9
){_1
.publish("/dnd/move/start",[_9
]);_1
.addClass(_1
.body(),"dojoMove");_1
.addClass(this.node
,"dojoMoveItem");},onMoveStop:function(_a
){_1
.publish("/dnd/move/stop",[_a
]);_1
.removeClass(_1
.body(),"dojoMove");_1
.removeClass(this.node
,"dojoMoveItem");},onFirstMove:function(_b
,e
){},onMove:function(_c
,_d
,e
){this.onMoving(_c
,_d
);var s
=_c
.node
.style
;s
.left
=_d
.l
+"px";s
.top
=_d
.t
+"px";this.onMoved(_c
,_d
);},onMoving:function(_e
,_f
){},onMoved:function(_10
,_11
){}});return _1
.dnd
.Moveable
;});