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/Manager.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/Manager.js.uncompressed.js')
-rw-r--r-- | lib/dojo/dnd/Manager.js.uncompressed.js | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/lib/dojo/dnd/Manager.js.uncompressed.js b/lib/dojo/dnd/Manager.js.uncompressed.js deleted file mode 100644 index 4b6a12acd..000000000 --- a/lib/dojo/dnd/Manager.js.uncompressed.js +++ /dev/null @@ -1,223 +0,0 @@ -define("dojo/dnd/Manager", [ - "../_base/array", "../_base/declare", "../_base/event", "../_base/lang", "../_base/window", - "../dom-class", "../Evented", "../has", "../keys", "../on", "../topic", "../touch", - "./common", "./autoscroll", "./Avatar" -], function(array, declare, event, lang, win, domClass, Evented, has, keys, on, topic, touch, - dnd, autoscroll, Avatar){ - -// module: -// dojo/dnd/Manager - -var Manager = declare("dojo.dnd.Manager", [Evented], { - // summary: - // the manager of DnD operations (usually a singleton) - constructor: function(){ - this.avatar = null; - this.source = null; - this.nodes = []; - this.copy = true; - this.target = null; - this.canDropFlag = false; - this.events = []; - }, - - // avatar's offset from the mouse - OFFSET_X: has("touch") ? 0 : 16, - OFFSET_Y: has("touch") ? -64 : 16, - - // methods - overSource: function(source){ - // summary: - // called when a source detected a mouse-over condition - // source: Object - // the reporter - if(this.avatar){ - this.target = (source && source.targetState != "Disabled") ? source : null; - this.canDropFlag = Boolean(this.target); - this.avatar.update(); - } - topic.publish("/dnd/source/over", source); - }, - outSource: function(source){ - // summary: - // called when a source detected a mouse-out condition - // source: Object - // the reporter - if(this.avatar){ - if(this.target == source){ - this.target = null; - this.canDropFlag = false; - this.avatar.update(); - topic.publish("/dnd/source/over", null); - } - }else{ - topic.publish("/dnd/source/over", null); - } - }, - startDrag: function(source, nodes, copy){ - // summary: - // called to initiate the DnD operation - // source: Object - // the source which provides items - // nodes: Array - // the list of transferred items - // copy: Boolean - // copy items, if true, move items otherwise - - // Tell autoscroll that a drag is starting - autoscroll.autoScrollStart(win.doc); - - this.source = source; - this.nodes = nodes; - this.copy = Boolean(copy); // normalizing to true boolean - this.avatar = this.makeAvatar(); - win.body().appendChild(this.avatar.node); - topic.publish("/dnd/start", source, nodes, this.copy); - this.events = [ - on(win.doc, touch.move, lang.hitch(this, "onMouseMove")), - on(win.doc, touch.release, lang.hitch(this, "onMouseUp")), - on(win.doc, "keydown", lang.hitch(this, "onKeyDown")), - on(win.doc, "keyup", lang.hitch(this, "onKeyUp")), - // cancel text selection and text dragging - on(win.doc, "dragstart", event.stop), - on(win.body(), "selectstart", event.stop) - ]; - var c = "dojoDnd" + (copy ? "Copy" : "Move"); - domClass.add(win.body(), c); - }, - canDrop: function(flag){ - // summary: - // called to notify if the current target can accept items - var canDropFlag = Boolean(this.target && flag); - if(this.canDropFlag != canDropFlag){ - this.canDropFlag = canDropFlag; - this.avatar.update(); - } - }, - stopDrag: function(){ - // summary: - // stop the DnD in progress - domClass.remove(win.body(), ["dojoDndCopy", "dojoDndMove"]); - array.forEach(this.events, function(handle){ handle.remove(); }); - this.events = []; - this.avatar.destroy(); - this.avatar = null; - this.source = this.target = null; - this.nodes = []; - }, - makeAvatar: function(){ - // summary: - // makes the avatar; it is separate to be overwritten dynamically, if needed - return new Avatar(this); - }, - updateAvatar: function(){ - // summary: - // updates the avatar; it is separate to be overwritten dynamically, if needed - this.avatar.update(); - }, - - // mouse event processors - onMouseMove: function(e){ - // summary: - // event processor for onmousemove - // e: Event - // mouse event - var a = this.avatar; - if(a){ - autoscroll.autoScrollNodes(e); - //autoscroll.autoScroll(e); - var s = a.node.style; - s.left = (e.pageX + this.OFFSET_X) + "px"; - s.top = (e.pageY + this.OFFSET_Y) + "px"; - var copy = Boolean(this.source.copyState(dnd.getCopyKeyState(e))); - if(this.copy != copy){ - this._setCopyStatus(copy); - } - } - if(has("touch")){ - // Prevent page from scrolling so that user can drag instead. - e.preventDefault(); - } - }, - onMouseUp: function(e){ - // summary: - // event processor for onmouseup - // e: Event - // mouse event - if(this.avatar){ - if(this.target && this.canDropFlag){ - var copy = Boolean(this.source.copyState(dnd.getCopyKeyState(e))); - topic.publish("/dnd/drop/before", this.source, this.nodes, copy, this.target, e); - topic.publish("/dnd/drop", this.source, this.nodes, copy, this.target, e); - }else{ - topic.publish("/dnd/cancel"); - } - this.stopDrag(); - } - }, - - // keyboard event processors - onKeyDown: function(e){ - // summary: - // event processor for onkeydown: - // watching for CTRL for copy/move status, watching for ESCAPE to cancel the drag - // e: Event - // keyboard event - if(this.avatar){ - switch(e.keyCode){ - case keys.CTRL: - var copy = Boolean(this.source.copyState(true)); - if(this.copy != copy){ - this._setCopyStatus(copy); - } - break; - case keys.ESCAPE: - topic.publish("/dnd/cancel"); - this.stopDrag(); - break; - } - } - }, - onKeyUp: function(e){ - // summary: - // event processor for onkeyup, watching for CTRL for copy/move status - // e: Event - // keyboard event - if(this.avatar && e.keyCode == keys.CTRL){ - var copy = Boolean(this.source.copyState(false)); - if(this.copy != copy){ - this._setCopyStatus(copy); - } - } - }, - - // utilities - _setCopyStatus: function(copy){ - // summary: - // changes the copy status - // copy: Boolean - // the copy status - this.copy = copy; - this.source._markDndStatus(this.copy); - this.updateAvatar(); - domClass.replace(win.body(), - "dojoDnd" + (this.copy ? "Copy" : "Move"), - "dojoDnd" + (this.copy ? "Move" : "Copy")); - } -}); - -// dnd._manager: -// The manager singleton variable. Can be overwritten if needed. -dnd._manager = null; - -Manager.manager = dnd.manager = function(){ - // summary: - // Returns the current DnD manager. Creates one if it is not created yet. - if(!dnd._manager){ - dnd._manager = new Manager(); - } - return dnd._manager; // Object -}; - -return Manager; -}); |