diff options
author | Milan Gardian <mgardian@gmail.com> | 2010-02-11 08:08:56 +0800 |
---|---|---|
committer | Michael Leibman <michael.leibman@gmail.com> | 2010-02-12 03:46:23 +0800 |
commit | a43ceaf16a675f75f00ab94a1c47640ab75e2d56 (patch) | |
tree | 7289d30e885ac519898fd731b17f46203ec844e8 /lib/jquery.event.drag.custom.js | |
parent | 0660af94e93a9278a73806ee428efd2766a3ac6b (diff) | |
download | SlickGrid-a43ceaf16a675f75f00ab94a1c47640ab75e2d56.zip SlickGrid-a43ceaf16a675f75f00ab94a1c47640ab75e2d56.tar.gz SlickGrid-a43ceaf16a675f75f00ab94a1c47640ab75e2d56.tar.bz2 |
Preserve license information in Google Closure Compiler output
Diffstat (limited to 'lib/jquery.event.drag.custom.js')
-rw-r--r-- | lib/jquery.event.drag.custom.js | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/lib/jquery.event.drag.custom.js b/lib/jquery.event.drag.custom.js index fd0c5bb..c012ae0 100644 --- a/lib/jquery.event.drag.custom.js +++ b/lib/jquery.event.drag.custom.js @@ -1,7 +1,8 @@ -/*! -jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) -Liscensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt -*/ +/** + * @license + * jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) + * Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt + */ ;(function($){ // secure $ jQuery alias /*******************************************************************************************/ // Created: 2008-06-04 | Updated: 2009-03-24 @@ -27,9 +28,9 @@ drag = $special.drag = { which: 1, // mouse button pressed to start drag sequence dragging: false, // hold the active target element setup: function( data ){ - data = $.extend({ - distance: drag.distance, - which: drag.which, + data = $.extend({ + distance: drag.distance, + which: drag.which, not: drag.not }, data || {}); data.distance = squared( data.distance ); // xІ + yІ = distanceІ @@ -43,15 +44,15 @@ drag = $special.drag = { if ( this.detachEvent ) this.detachEvent("ondragstart", dontStart ); // prevent image dragging in IE... } }; - + // prevent normal event binding... $special.dragstart = $special.dragend = { setup:function(){}, teardown:function(){} }; // handle drag-releatd DOM events -function handler ( event ){ +function handler ( event ){ var elem = this, returned, data = event.data || {}; // mousemove or mouseup - if ( data.elem ){ + if ( data.elem ){ // update event properties... elem = event.dragTarget = data.elem; // drag source element event.dragProxy = drag.proxy || elem; // proxy element or source @@ -61,7 +62,7 @@ function handler ( event ){ event.offsetY = event.pageY - event.cursorOffsetY; // element offset } // mousedown, check some initial props to avoid the switch statement - else if ( drag.dragging || ( data.which>0 && event.which!=data.which ) || + else if ( drag.dragging || ( data.which>0 && event.which!=data.which ) || $( event.target ).is( data.not ) ) return; // handle various events switch ( event.type ){ @@ -70,17 +71,17 @@ function handler ( event ){ returned = hijack(event, "beforedragstart", elem); if (returned === false) return true; - $.extend( data, $( elem ).offset(), { + $.extend( data, $( elem ).offset(), { elem: elem, target: event.target, pageX: event.pageX, pageY: event.pageY }); // store some initial attributes $event.add( document, "mousemove mouseup", handler, data ); selectable( elem, false ); // disable text selection drag.dragging = null; // pending state - return false; // prevents text selection in safari + return false; // prevents text selection in safari // mousemove, check distance, start dragging - case !drag.dragging && 'mousemove': - if ( squared( event.pageX-data.pageX ) + case !drag.dragging && 'mousemove': + if ( squared( event.pageX-data.pageX ) + squared( event.pageY-data.pageY ) // xІ + yІ = distanceІ < data.distance ) break; // distance tolerance not reached event.target = data.target; // force target from "mousedown" event (fix distance issue) @@ -90,28 +91,28 @@ function handler ( event ){ drag.proxy = event.dragProxy = $( returned || elem )[0]; // set proxy } // mousemove, dragging - case 'mousemove': + case 'mousemove': if ( drag.dragging ){ - returned = hijack( event, "drag", elem ); // trigger "drag" + returned = hijack( event, "drag", elem ); // trigger "drag" if ( $special.drop ){ // manage drop events $special.drop.allowed = ( returned !== false ); // prevent drop $special.drop.handler( event ); // "dropstart", "dropend" } - if ( returned !== false ) break; // "drag" not rejected, stop + if ( returned !== false ) break; // "drag" not rejected, stop event.type = "mouseup"; // helps "drop" handler behave } // mouseup, stop dragging - case 'mouseup': + case 'mouseup': if (drag.dragging === false) break; $event.remove( document, "mousemove mouseup", handler ); // remove page events if ( drag.dragging ){ if ( $special.drop ) $special.drop.handler( event ); // "drop" - hijack( event, "dragend", elem ); // trigger "dragend" + hijack( event, "dragend", elem ); // trigger "dragend" } selectable( elem, true ); // enable text selection drag.dragging = drag.proxy = data.elem = false; // deactivate element break; - } + } return true; }; @@ -121,21 +122,21 @@ function hijack ( event, type, elem ){ var result = $.event.handle.call( elem, event ); return result===false ? false : result || event.result; }; - -// return the value squared + +// return the value squared function squared ( value ){ return Math.pow( value, 2 ); }; // suppress default dragstart IE events... -function dontStart(){ return ( drag.dragging === false ); }; +function dontStart(){ return ( drag.dragging === false ); }; -// toggles text selection attributes -function selectable ( elem, bool ){ - if ( !elem ) return; // maybe element was removed ? +// toggles text selection attributes +function selectable ( elem, bool ){ + if ( !elem ) return; // maybe element was removed ? elem.unselectable = bool ? "off" : "on"; // IE elem.onselectstart = function(){ return bool; }; // IE //if ( document.selection && document.selection.empty ) document.selection.empty(); // IE if ( elem.style ) elem.style.MozUserSelect = bool ? "" : "none"; // FF - }; - + }; + /*******************************************************************************************/ })( jQuery ); // confine scope
\ No newline at end of file |