mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-24 07:11:33 +00:00
update dojo to 1.7.3
This commit is contained in:
@@ -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;});
|
||||
Reference in New Issue
Block a user