Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojox.grid._grid.drag"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.grid._grid.drag"] = true;dojo.provide("dojox.grid._grid.drag");// summary:// utility functions for dragging as used in grid.// begin closure(function(){var dgdrag = dojox.grid.drag = {};dgdrag.dragging = false;dgdrag.hysteresis = 2;dgdrag.capture = function(inElement) {//console.debug('dojox.grid.drag.capture');if (inElement.setCapture)inElement.setCapture();else {document.addEventListener("mousemove", inElement.onmousemove, true);document.addEventListener("mouseup", inElement.onmouseup, true);document.addEventListener("click", inElement.onclick, true);}}dgdrag.release = function(inElement) {//console.debug('dojox.grid.drag.release');if(inElement.releaseCapture){inElement.releaseCapture();}else{document.removeEventListener("click", inElement.onclick, true);document.removeEventListener("mouseup", inElement.onmouseup, true);document.removeEventListener("mousemove", inElement.onmousemove, true);}}dgdrag.start = function(inElement, inOnDrag, inOnEnd, inEvent, inOnStart){if(/*dgdrag.elt ||*/ !inElement || dgdrag.dragging){console.debug('failed to start drag: bad input node or already dragging');return;}dgdrag.dragging = true;dgdrag.elt = inElement;dgdrag.events = {drag: inOnDrag || dojox.grid.nop,end: inOnEnd || dojox.grid.nop,start: inOnStart || dojox.grid.nop,oldmove: inElement.onmousemove,oldup: inElement.onmouseup,oldclick: inElement.onclick};dgdrag.positionX = (inEvent && ('screenX' in inEvent) ? inEvent.screenX : false);dgdrag.positionY = (inEvent && ('screenY' in inEvent) ? inEvent.screenY : false);dgdrag.started = (dgdrag.position === false);inElement.onmousemove = dgdrag.mousemove;inElement.onmouseup = dgdrag.mouseup;inElement.onclick = dgdrag.click;dgdrag.capture(dgdrag.elt);}dgdrag.end = function(){//console.debug("dojox.grid.drag.end");dgdrag.release(dgdrag.elt);dgdrag.elt.onmousemove = dgdrag.events.oldmove;dgdrag.elt.onmouseup = dgdrag.events.oldup;dgdrag.elt.onclick = dgdrag.events.oldclick;dgdrag.elt = null;try{if(dgdrag.started){dgdrag.events.end();}}finally{dgdrag.dragging = false;}}dgdrag.calcDelta = function(inEvent){inEvent.deltaX = inEvent.screenX - dgdrag.positionX;inEvent.deltaY = inEvent.screenY - dgdrag.positionY;}dgdrag.hasMoved = function(inEvent){return Math.abs(inEvent.deltaX) + Math.abs(inEvent.deltaY) > dgdrag.hysteresis;}dgdrag.mousemove = function(inEvent){inEvent = dojo.fixEvent(inEvent);dojo.stopEvent(inEvent);dgdrag.calcDelta(inEvent);if((!dgdrag.started)&&(dgdrag.hasMoved(inEvent))){dgdrag.events.start(inEvent);dgdrag.started = true;}if(dgdrag.started){dgdrag.events.drag(inEvent);}}dgdrag.mouseup = function(inEvent){//console.debug("dojox.grid.drag.mouseup");dojo.stopEvent(dojo.fixEvent(inEvent));dgdrag.end();}dgdrag.click = function(inEvent){dojo.stopEvent(dojo.fixEvent(inEvent));//dgdrag.end();}})();// end closure}