]> git.wh0rd.org - tt-rss.git/blobdiff - lib/dojo/dnd/Mover.js
update dojo to 1.7.3
[tt-rss.git] / lib / dojo / dnd / Mover.js
index a8c161c80fb4321f5d1b617158823c8b7704ea95..fecc6d9b8d8a57bd7f7d39dfb15c23e4b4a58043 100644 (file)
@@ -4,128 +4,5 @@
        see: http://dojotoolkit.org/license for details
 */
 
-
-if(!dojo._hasResource["dojo.dnd.Mover"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojo.dnd.Mover"] = true;
-dojo.provide("dojo.dnd.Mover");
-dojo.require("dojo.dnd.common");
-dojo.require("dojo.dnd.autoscroll");
-
-
-dojo.declare("dojo.dnd.Mover", null, {
-       constructor: function(node, e, host){
-               // summary:
-               //              an object which makes a node follow the mouse, or touch-drag on touch devices.
-               //              Used as a default mover, and as a base class for custom movers.
-               // node: Node
-               //              a node (or node's id) to be moved
-               // e: Event
-               //              a mouse event, which started the move;
-               //              only pageX and pageY properties are used
-               // host: Object?
-               //              object which implements the functionality of the move,
-               //              and defines proper events (onMoveStart and onMoveStop)
-               this.node = dojo.byId(node);
-               var pos = e.touches ? e.touches[0] : e;
-               this.marginBox = {l: pos.pageX, t: pos.pageY};
-               this.mouseButton = e.button;
-               var h = (this.host = host), d = node.ownerDocument;
-               this.events = [
-                       // At the start of a drag, onFirstMove is called, and then the following two
-                       // connects are disconnected
-                       dojo.connect(d, "onmousemove", this, "onFirstMove"),
-                       dojo.connect(d, "ontouchmove", this, "onFirstMove"),
-
-                       // These are called continually during the drag
-                       dojo.connect(d, "onmousemove", this, "onMouseMove"),
-                       dojo.connect(d, "ontouchmove", this, "onMouseMove"),
-
-                       // And these are called at the end of the drag
-                       dojo.connect(d, "onmouseup",   this, "onMouseUp"),
-                       dojo.connect(d, "ontouchend", this, "onMouseUp"),
-
-                       // cancel text selection and text dragging
-                       dojo.connect(d, "ondragstart",   dojo.stopEvent),
-                       dojo.connect(d.body, "onselectstart", dojo.stopEvent)
-               ];
-               // notify that the move has started
-               if(h && h.onMoveStart){
-                       h.onMoveStart(this);
-               }
-       },
-       // mouse event processors
-       onMouseMove: function(e){
-               // summary:
-               //              event processor for onmousemove/ontouchmove
-               // e: Event
-               //              mouse/touch event
-               dojo.dnd.autoScroll(e);
-               var m = this.marginBox,
-                       pos = e.touches ? e.touches[0] : e;
-               this.host.onMove(this, {l: m.l + pos.pageX, t: m.t + pos.pageY}, e);
-               dojo.stopEvent(e);
-       },
-       onMouseUp: function(e){
-               if(dojo.isWebKit && dojo.isMac && this.mouseButton == 2 ?
-                               e.button == 0 : this.mouseButton == e.button){ // TODO Should condition be met for touch devices, too?
-                       this.destroy();
-               }
-               dojo.stopEvent(e);
-       },
-       // utilities
-       onFirstMove: function(e){
-               // summary:
-               //              makes the node absolute; it is meant to be called only once.
-               //              relative and absolutely positioned nodes are assumed to use pixel units
-               var s = this.node.style, l, t, h = this.host;
-               switch(s.position){
-                       case "relative":
-                       case "absolute":
-                               // assume that left and top values are in pixels already
-                               l = Math.round(parseFloat(s.left)) || 0;
-                               t = Math.round(parseFloat(s.top)) || 0;
-                               break;
-                       default:
-                               s.position = "absolute";        // enforcing the absolute mode
-                               var m = dojo.marginBox(this.node);
-                               // event.pageX/pageY (which we used to generate the initial
-                               // margin box) includes padding and margin set on the body.
-                               // However, setting the node's position to absolute and then
-                               // doing dojo.marginBox on it *doesn't* take that additional
-                               // space into account - so we need to subtract the combined
-                               // padding and margin.  We use getComputedStyle and
-                               // _getMarginBox/_getContentBox to avoid the extra lookup of
-                               // the computed style.
-                               var b = dojo.doc.body;
-                               var bs = dojo.getComputedStyle(b);
-                               var bm = dojo._getMarginBox(b, bs);
-                               var bc = dojo._getContentBox(b, bs);
-                               l = m.l - (bc.l - bm.l);
-                               t = m.t - (bc.t - bm.t);
-                               break;
-               }
-               this.marginBox.l = l - this.marginBox.l;
-               this.marginBox.t = t - this.marginBox.t;
-               if(h && h.onFirstMove){
-                       h.onFirstMove(this, e);
-               }
-               
-               // Disconnect onmousemove and ontouchmove events that call this function
-               dojo.disconnect(this.events.shift());
-               dojo.disconnect(this.events.shift());
-       },
-       destroy: function(){
-               // summary:
-               //              stops the move, deletes all references, so the object can be garbage-collected
-               dojo.forEach(this.events, dojo.disconnect);
-               // undo global settings
-               var h = this.host;
-               if(h && h.onMoveStop){
-                       h.onMoveStop(this);
-               }
-               // destroy objects
-               this.events = this.node = this.host = null;
-       }
-});
-
-}
+//>>built
+define("dojo/dnd/Mover",["../main","../Evented","../touch","./common","./autoscroll"],function(_1,_2,_3){_1.declare("dojo.dnd.Mover",[_2],{constructor:function(_4,e,_5){this.node=_1.byId(_4);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=(this.host=_5),d=_4.ownerDocument;this.events=[_1.connect(d,_3.move,this,"onFirstMove"),_1.connect(d,_3.move,this,"onMouseMove"),_1.connect(d,_3.release,this,"onMouseUp"),_1.connect(d,"ondragstart",_1.stopEvent),_1.connect(d.body,"onselectstart",_1.stopEvent)];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){_1.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);_1.stopEvent(e);},onMouseUp:function(e){if(_1.isWebKit&&_1.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}_1.stopEvent(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=_1.marginBox(this.node);var b=_1.doc.body;var bs=_1.getComputedStyle(b);var bm=_1._getMarginBox(b,bs);var bc=_1._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}_1.disconnect(this.events.shift());},destroy:function(){_1.forEach(this.events,_1.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});return _1.dnd.Mover;});
\ No newline at end of file