diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
commit | e44a7e37b6c7b5961adaffc62b9042b8d442938e (patch) | |
tree | 95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/layout/DragPane.js | |
parent | a62b9742ee5e28bcec6872d88f50f25b820914f6 (diff) | |
download | semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.bz2 |
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/layout/DragPane.js')
-rw-r--r-- | includes/js/dojox/layout/DragPane.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/includes/js/dojox/layout/DragPane.js b/includes/js/dojox/layout/DragPane.js new file mode 100644 index 0000000..4dec5e4 --- /dev/null +++ b/includes/js/dojox/layout/DragPane.js @@ -0,0 +1,65 @@ +if(!dojo._hasResource["dojox.layout.DragPane"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.layout.DragPane"] = true; +dojo.provide("dojox.layout.DragPane"); + +dojo.require("dijit._Widget"); + +dojo.declare("dojox.layout.DragPane", + dijit._Widget, { + // + // summary: Makes a pane's content dragable by/within it's surface + // + // description: + // A small widget which takes a node with overflow:auto and + // allows dragging to position the content. Useful with images, + // or for just adding "something" to a overflow-able div. + // + // invert: Boolean + // Naturally, the behavior is to invert the axis of the drag. + // Setting invert:false will make the pane drag in the same + // direction as the mouse. + invert:true, + + postCreate: function(){ + + this.inherited(arguments); + this.connect(this.domNode,"onmousedown","_down"); + this.connect(this.domNode,"onmouseup","_up"); + }, + + _down: function(e){ + // summary: mousedown handler, start the dragging + var t = this.domNode; + dojo.style(t,"cursor","move"); + this._x = e.pageX; + this._y = e.pageY; + if ((this._x < t.offsetLeft + t.clientWidth) && + (this._y < t.offsetTop + t.clientHeight)) { + dojo.setSelectable(t,false); + this._mover = dojo.connect(t,"onmousemove",this,"_move"); + } + }, + + _up: function(e){ + // summary: mouseup handler, stop the dragging + + dojo.setSelectable(this.domNode,true); + dojo.style(this.domNode,"cursor","pointer"); + dojo.disconnect(this._mover); + }, + + _move: function(e){ + // summary: mousemove listener, offset the scroll amount by the delta + // since our last call. + + var mod = this.invert ? 1 : -1; + this.domNode.scrollTop += (this._y - e.pageY) * mod; + this.domNode.scrollLeft += (this._x - e.pageX) * mod; + this._x = e.pageX; + this._y = e.pageY; + + } + +}); + +} |