diff options
author | Barak Korren <[email protected]> | 2013-04-02 20:38:07 +0300 |
---|---|---|
committer | Barak Korren <[email protected]> | 2013-04-02 20:38:07 +0300 |
commit | 58a2577d48790c79adfd44bcfd662c980ce6cfe4 (patch) | |
tree | 523d814ea0b7b6f617fe515b186099c6e83fed72 /lib/dojo/dnd/autoscroll.js.uncompressed.js | |
parent | e470a273cf09562fb2f9c0c899002303f19c8d16 (diff) | |
parent | cc332603431102a682feda22b9cf0093a29f0176 (diff) |
Merge branch 'master' of https://github.com/gothfox/Tiny-Tiny-RSS.git
Diffstat (limited to 'lib/dojo/dnd/autoscroll.js.uncompressed.js')
-rw-r--r-- | lib/dojo/dnd/autoscroll.js.uncompressed.js | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/lib/dojo/dnd/autoscroll.js.uncompressed.js b/lib/dojo/dnd/autoscroll.js.uncompressed.js deleted file mode 100644 index 29fd413f5..000000000 --- a/lib/dojo/dnd/autoscroll.js.uncompressed.js +++ /dev/null @@ -1,149 +0,0 @@ -define("dojo/dnd/autoscroll", ["../_base/lang", "../sniff", "../_base/window", "../dom-geometry", "../dom-style", "../window"], - function(lang, has, win, domGeom, domStyle, winUtils){ - -// module: -// dojo/dnd/autoscroll - -var exports = { - // summary: - // Used by dojo/dnd/Manager to scroll document or internal node when the user - // drags near the edge of the viewport or a scrollable node -}; -lang.setObject("dojo.dnd.autoscroll", exports); - -exports.getViewport = winUtils.getBox; - -exports.V_TRIGGER_AUTOSCROLL = 32; -exports.H_TRIGGER_AUTOSCROLL = 32; - -exports.V_AUTOSCROLL_VALUE = 16; -exports.H_AUTOSCROLL_VALUE = 16; - -// These are set by autoScrollStart(). -// Set to default values in case autoScrollStart() isn't called. (back-compat, remove for 2.0) -var viewport, - doc = win.doc, - maxScrollTop = Infinity, - maxScrollLeft = Infinity; - -exports.autoScrollStart = function(d){ - // summary: - // Called at the start of a drag. - // d: Document - // The document of the node being dragged. - - doc = d; - viewport = winUtils.getBox(doc); - - // Save height/width of document at start of drag, before it gets distorted by a user dragging an avatar past - // the document's edge - var html = win.body(doc).parentNode; - maxScrollTop = Math.max(html.scrollHeight - viewport.h, 0); - maxScrollLeft = Math.max(html.scrollWidth - viewport.w, 0); // usually 0 -}; - -exports.autoScroll = function(e){ - // summary: - // a handler for mousemove and touchmove events, which scrolls the window, if - // necessary - // e: Event - // mousemove/touchmove event - - // FIXME: needs more docs! - var v = viewport || winUtils.getBox(doc), // getBox() call for back-compat, in case autoScrollStart() wasn't called - html = win.body(doc).parentNode, - dx = 0, dy = 0; - if(e.clientX < exports.H_TRIGGER_AUTOSCROLL){ - dx = -exports.H_AUTOSCROLL_VALUE; - }else if(e.clientX > v.w - exports.H_TRIGGER_AUTOSCROLL){ - dx = Math.min(exports.H_AUTOSCROLL_VALUE, maxScrollLeft - html.scrollLeft); // don't scroll past edge of doc - } - if(e.clientY < exports.V_TRIGGER_AUTOSCROLL){ - dy = -exports.V_AUTOSCROLL_VALUE; - }else if(e.clientY > v.h - exports.V_TRIGGER_AUTOSCROLL){ - dy = Math.min(exports.V_AUTOSCROLL_VALUE, maxScrollTop - html.scrollTop); // don't scroll past edge of doc - } - window.scrollBy(dx, dy); -}; - -exports._validNodes = {"div": 1, "p": 1, "td": 1}; -exports._validOverflow = {"auto": 1, "scroll": 1}; - -exports.autoScrollNodes = function(e){ - // summary: - // a handler for mousemove and touchmove events, which scrolls the first available - // Dom element, it falls back to exports.autoScroll() - // e: Event - // mousemove/touchmove event - - // FIXME: needs more docs! - - var b, t, w, h, rx, ry, dx = 0, dy = 0, oldLeft, oldTop; - - for(var n = e.target; n;){ - if(n.nodeType == 1 && (n.tagName.toLowerCase() in exports._validNodes)){ - var s = domStyle.getComputedStyle(n), - overflow = (s.overflow.toLowerCase() in exports._validOverflow), - overflowX = (s.overflowX.toLowerCase() in exports._validOverflow), - overflowY = (s.overflowY.toLowerCase() in exports._validOverflow); - if(overflow || overflowX || overflowY){ - b = domGeom.getContentBox(n, s); - t = domGeom.position(n, true); - } - // overflow-x - if(overflow || overflowX){ - w = Math.min(exports.H_TRIGGER_AUTOSCROLL, b.w / 2); - rx = e.pageX - t.x; - if(has("webkit") || has("opera")){ - // FIXME: this code should not be here, it should be taken into account - // either by the event fixing code, or the domGeom.position() - // FIXME: this code doesn't work on Opera 9.5 Beta - rx += win.body().scrollLeft; - } - dx = 0; - if(rx > 0 && rx < b.w){ - if(rx < w){ - dx = -w; - }else if(rx > b.w - w){ - dx = w; - } - oldLeft = n.scrollLeft; - n.scrollLeft = n.scrollLeft + dx; - } - } - // overflow-y - if(overflow || overflowY){ - //console.log(b.l, b.t, t.x, t.y, n.scrollLeft, n.scrollTop); - h = Math.min(exports.V_TRIGGER_AUTOSCROLL, b.h / 2); - ry = e.pageY - t.y; - if(has("webkit") || has("opera")){ - // FIXME: this code should not be here, it should be taken into account - // either by the event fixing code, or the domGeom.position() - // FIXME: this code doesn't work on Opera 9.5 Beta - ry += win.body().scrollTop; - } - dy = 0; - if(ry > 0 && ry < b.h){ - if(ry < h){ - dy = -h; - }else if(ry > b.h - h){ - dy = h; - } - oldTop = n.scrollTop; - n.scrollTop = n.scrollTop + dy; - } - } - if(dx || dy){ return; } - } - try{ - n = n.parentNode; - }catch(x){ - n = null; - } - } - exports.autoScroll(e); -}; - -return exports; - -}); |