MouseTracker Original Events in Handlers

Misc name changes, indentation/whitespace fixes.
Still TODO: Fix documentation, evaluate presence of key handler in a
mouse tracker, evaluate whether isTouchEvent flag should be in all
eventData objects or not.
This commit is contained in:
Mark Salsbery 2013-09-09 14:27:58 -07:00
parent d60224b615
commit 13415b36f3
7 changed files with 93 additions and 92 deletions

View File

@ -176,7 +176,7 @@ $.Button = function( options ) {
clickDistThreshold: this.clickDistThreshold,
enterHandler: function( tracker, eventData ) {
if ( eventData.buttonDownElement ) {
if ( eventData.insideElementPressed ) {
inTo( _this, $.ButtonState.DOWN );
_this.raiseEvent( "onEnter", _this );
} else if ( !eventData.buttonDownAny ) {
@ -191,7 +191,7 @@ $.Button = function( options ) {
exitHandler: function( tracker, eventData ) {
outTo( _this, $.ButtonState.GROUP );
if ( eventData.buttonDownElement ) {
if ( eventData.insideElementPressed ) {
_this.raiseEvent( "onExit", _this );
}
},
@ -207,10 +207,10 @@ $.Button = function( options ) {
},
releaseHandler: function( tracker, eventData ) {
if ( eventData.insideElementPress && eventData.insideElementRelease ) {
if ( eventData.insideElementPressed && eventData.insideElementRelease ) {
outTo( _this, $.ButtonState.HOVER );
_this.raiseEvent( "onRelease", _this );
} else if ( eventData.insideElementPress ) {
} else if ( eventData.insideElementPressed ) {
outTo( _this, $.ButtonState.GROUP );
} else {
inTo( _this, $.ButtonState.HOVER );

View File

@ -93,7 +93,7 @@ $.ButtonGroup = function( options ) {
},
exitHandler: function ( tracker, eventData ) {
var i;
if ( !eventData.buttonDownElement ) {
if ( !eventData.insideElementPressed ) {
for ( i = 0; i < _this.buttons.length; i++ ) {
_this.buttons[ i ].notifyGroupExit();
}

View File

@ -138,7 +138,7 @@
* Are we currently tracking mouse events.
* @property {Boolean} capturing
* Are we curruently capturing mouse events.
* @property {Boolean} buttonDownElement
* @property {Boolean} insideElementPressed
* True if the left mouse button is currently being pressed and was
* initiated inside the tracked element, otherwise false.
* @property {Boolean} insideElement
@ -160,9 +160,9 @@
DOMMouseScroll: function ( event ) { onMouseWheelSpin( _this, event, false ); },
mousewheel: function ( event ) { onMouseWheelSpin( _this, event, false ); },
mouseupie: function ( event ) { onMouseUpIE( _this, event ); },
mousemoveie: function ( event ) { onMouseMoveIE( _this, event ); },
mouseupwindow: function ( event ) { onMouseUpWindow( _this, event ); },
mousemovewindow: function ( event ) { onMouseMoveWindow( _this, event, false ); },
mousemovecapturedie: function ( event ) { onMouseMoveCapturedIE( _this, event ); },
mouseupcaptured: function ( event ) { onMouseUpCaptured( _this, event ); },
mousemovecaptured: function ( event ) { onMouseMoveCaptured( _this, event, false ); },
touchstart: function ( event ) { onTouchStart( _this, event ); },
touchmove: function ( event ) { onTouchMove( _this, event ); },
touchend: function ( event ) { onTouchEnd( _this, event ); },
@ -171,7 +171,7 @@
blur: function ( event ) { onBlur( _this, event ); },
tracking: false,
capturing: false,
buttonDownElement: false,
insideElementPressed: false,
insideElement: false,
lastPoint: null,
lastMouseDownTime: null,
@ -227,7 +227,7 @@
* @param {Object} eventData
* {
* position: The position of the event relative to the tracked element.
* buttonDownElement: True if the left mouse button is currently being pressed and was initiated inside the tracked element, otherwise false.
* insideElementPressed: True if the left mouse button is currently being pressed and was initiated inside the tracked element, otherwise false.
* buttonDownAny: Was the button down anywhere in the screen during the event.
* isTouchEvent: True if the original event is a touch event, otherwise false.
* originalEvent: The original event object.
@ -245,7 +245,7 @@
* @param {Object} eventData
* {
* position: The position of the event relative to the tracked element.
* buttonDownElement: True if the left mouse button is currently being pressed and was initiated inside the tracked element, otherwise false.
* insideElementPressed: True if the left mouse button is currently being pressed and was initiated inside the tracked element, otherwise false.
* buttonDownAny: Was the button down anywhere in the screen during the event.
* isTouchEvent: True if the original event is a touch event, otherwise false.
* originalEvent: The original event object.
@ -279,7 +279,7 @@
* @param {Object} eventData
* {
* position: The position of the event relative to the tracked element.
* insideElementPress: True if the left mouse button is currently being pressed and was initiated inside the tracked element, otherwise false.
* insideElementPressed: True if the left mouse button is currently being pressed and was initiated inside the tracked element, otherwise false.
* insideElementRelease: Was the mouse still inside the tracked element when the button was released.
* isTouchEvent: True if the original event is a touch event, otherwise false.
* originalEvent: The original event object.
@ -507,20 +507,20 @@
$.addEvent(
tracker.element,
"mousemove",
delegate.mousemoveie,
delegate.mousemovecapturedie,
true
);
} else {
$.addEvent(
window,
"mouseup",
delegate.mouseupwindow,
delegate.mouseupcaptured,
true
);
$.addEvent(
window,
"mousemove",
delegate.mousemovewindow,
delegate.mousemovecaptured,
true
);
}
@ -542,7 +542,7 @@
$.removeEvent(
tracker.element,
"mousemove",
delegate.mousemoveie,
delegate.mousemovecapturedie,
true
);
$.removeEvent(
@ -561,13 +561,13 @@
$.removeEvent(
window,
"mousemove",
delegate.mousemovewindow,
delegate.mousemovecaptured,
true
);
$.removeEvent(
window,
"mouseup",
delegate.mouseupwindow,
delegate.mouseupcaptured,
true
);
}
@ -671,7 +671,7 @@
var delegate = THIS[tracker.hash],
propagate;
isTouch = ( isTouch !== undefined ) ? isTouch : false;
isTouch = isTouch || false;
event = $.getEvent( event );
@ -702,7 +702,7 @@
tracker,
{
position: getMouseRelative( event, tracker.element ),
buttonDownElement: delegate.buttonDownElement,
insideElementPressed: delegate.insideElementPressed,
buttonDownAny: IS_BUTTON_DOWN,
isTouchEvent: isTouch,
originalEvent: event,
@ -724,7 +724,7 @@
var delegate = THIS[tracker.hash],
propagate;
isTouch = ( isTouch !== undefined ) ? isTouch : false;
isTouch = isTouch || false;
event = $.getEvent( event );
@ -756,7 +756,7 @@
tracker,
{
position: getMouseRelative( event, tracker.element ),
buttonDownElement: delegate.buttonDownElement,
insideElementPressed: delegate.insideElementPressed,
buttonDownAny: IS_BUTTON_DOWN,
isTouchEvent: isTouch,
originalEvent: event,
@ -779,7 +779,7 @@
var delegate = THIS[tracker.hash],
propagate;
isTouch = ( isTouch !== undefined ) ? isTouch : false;
isTouch = isTouch || false;
event = $.getEvent( event );
@ -787,7 +787,7 @@
return;
}
delegate.buttonDownElement = true;
delegate.insideElementPressed = true;
delegate.lastPoint = getMouseAbsolute( event );
delegate.lastMouseDownPoint = delegate.lastPoint;
@ -842,7 +842,7 @@
THIS[tracker.hash].lastTouch = event.touches[0];
onMouseOver( tracker, event, true );
// call with no capture as the onMouseMoveWindow will
// call with no capture as the onMouseMoveCaptured will
// be triggered by onTouchMove
onMouseDown( tracker, event, true, true );
}
@ -872,12 +872,12 @@
function onMouseUp( tracker, event, isTouch ) {
var delegate = THIS[tracker.hash],
//were we inside the tracked element when we were pressed
insideElementPress = delegate.buttonDownElement,
insideElementPressed = delegate.insideElementPressed,
//are we still inside the tracked element when we released
insideElementRelease = delegate.insideElement,
propagate;
isTouch = ( isTouch !== undefined ) ? isTouch : false;
isTouch = isTouch || false;
event = $.getEvent( event );
@ -885,14 +885,14 @@
return;
}
delegate.buttonDownElement = false;
delegate.insideElementPressed = false;
if ( tracker.releaseHandler ) {
propagate = tracker.releaseHandler(
tracker,
{
position: getMouseRelative( event, tracker.element ),
insideElementPress: insideElementPress,
insideElementPressed: insideElementPressed,
insideElementRelease: insideElementRelease,
isTouchEvent: isTouch,
originalEvent: event,
@ -904,7 +904,7 @@
}
}
if ( insideElementPress && insideElementRelease ) {
if ( insideElementPressed && insideElementRelease ) {
handleMouseClick( tracker, event );
}
}
@ -924,7 +924,7 @@
// call with no release, as the mouse events are
// not registered in onTouchStart
onMouseUpWindow( tracker, event, true, true );
onMouseUpCaptured( tracker, event, true, true );
onMouseOut( tracker, event, true );
}
if ( event.touches.length + event.changedTouches.length == 2 ) {
@ -983,8 +983,8 @@
* @private
* @inner
*/
function onMouseUpWindow( tracker, event, noRelease, isTouch ) {
isTouch = ( isTouch !== undefined ) ? isTouch : false;
function onMouseUpCaptured( tracker, event, noRelease, isTouch ) {
isTouch = isTouch || false;
if ( !THIS[tracker.hash].insideElement ) {
onMouseUp( tracker, event, isTouch );
@ -1041,7 +1041,7 @@
var nDelta = 0,
propagate;
isTouch = ( isTouch !== undefined ) ? isTouch : false;
isTouch = isTouch || false;
if ( !event ) { // For IE, access the global (window) event object
event = window.event;
@ -1122,13 +1122,13 @@
* @private
* @inner
*/
function onMouseMoveWindow( tracker, event, isTouch ) {
function onMouseMoveCaptured( tracker, event, isTouch ) {
var delegate = THIS[tracker.hash],
delta,
propagate,
point;
isTouch = ( isTouch !== undefined ) ? isTouch : false;
isTouch = isTouch || false;
event = $.getEvent( event );
point = getMouseAbsolute( event );
@ -1173,7 +1173,7 @@
event.changedTouches.length === 1 &&
THIS[tracker.hash].lastTouch.identifier === event.touches[0].identifier ) {
onMouseMoveWindow( tracker, event, true );
onMouseMoveCaptured( tracker, event, true );
} else if ( event.touches.length === 2 ) {
@ -1188,8 +1188,7 @@
//$.console.debug( "pinch delta : " + pinchDelta + " | previous : " + THIS[ tracker.hash ].lastPinchDelta);
// Adjust the original event enough to simulate a mouse wheel scroll
event.shift = false;
event.shiftKey = false;
event.shiftKey = event.shiftKey || false;
event.pageX = THIS[tracker.hash].pinchMidpoint.x;
event.pageY = THIS[tracker.hash].pinchMidpoint.y;
event.detail = ( THIS[tracker.hash].lastPinchDelta > pinchDelta ) ? 1 : -1;
@ -1211,10 +1210,10 @@
* @private
* @inner
*/
function onMouseMoveIE( tracker, event ) {
function onMouseMoveCapturedIE( tracker, event ) {
var i;
for ( i = 0; i < CAPTURING.length; i++ ) {
onMouseMoveWindow( CAPTURING[i], event, false );
onMouseMoveCaptured( CAPTURING[i], event, false );
}
$.stopEvent( event );

View File

@ -308,8 +308,8 @@ function onCanvasDrag( tracker, eventData ) {
* @inner
* @function
*/
function onCanvasRelease( tracker, eventData ) {//position, insideElementPress, insideElementRelease
if ( eventData.insideElementPress && this.viewer.viewport ) {
function onCanvasRelease( tracker, eventData ) {
if ( eventData.insideElementPressed && this.viewer.viewport ) {
this.viewer.viewport.applyConstraints();
}
}

View File

@ -707,6 +707,8 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){
* @returns {Point} - the position of the upper left corner of the element adjusted for current page and/or element scroll.
*/
getElementOffset: function( element ) {
element = $.getElement( element );
var doc = element && element.ownerDocument,
docElement,
win,

View File

@ -197,7 +197,7 @@ $.ReferenceStrip = function ( options ) {
page = Number( id.split( '-' )[2] ),
now = $.now();
if ( eventData.insideElementPress &&
if ( eventData.insideElementPressed &&
eventData.insideElementRelease &&
tracker.dragging &&
( now - tracker.dragging ) < tracker.clickTimeThreshold ) {

View File

@ -1472,13 +1472,13 @@ function onCanvasDrag( tracker, eventData ) {
}
function onCanvasRelease( tracker, eventData ) {
if ( eventData.insideElementPress && this.viewport ) {
if ( eventData.insideElementPressed && this.viewport ) {
this.viewport.applyConstraints();
}
this.raiseEvent( 'canvas-release', {
tracker: tracker,
position: eventData.position,
insideElementPress: eventData.insideElementPress,
insideElementPressed: eventData.insideElementPressed,
insideElementRelease: eventData.insideElementRelease
});
}
@ -1504,7 +1504,7 @@ function onCanvasScroll( tracker, eventData ) {
}
function onContainerExit( tracker, eventData ) {
if ( !eventData.buttonDownElement ) {
if ( !eventData.insideElementPressed ) {
THIS[ this.hash ].mouseInside = false;
if ( !THIS[ this.hash ].animating ) {
beginControlsAutoHide( this );
@ -1513,7 +1513,7 @@ function onContainerExit( tracker, eventData ) {
this.raiseEvent( 'container-exit', {
tracker: tracker,
position: eventData.position,
buttonDownElement: eventData.buttonDownElement,
insideElementPressed: eventData.insideElementPressed,
buttonDownAny: eventData.buttonDownAny
});
}
@ -1528,7 +1528,7 @@ function onContainerRelease( tracker, eventData ) {
this.raiseEvent( 'container-release', {
tracker: tracker,
position: eventData.position,
insideElementPress: eventData.insideElementPress,
insideElementPressed: eventData.insideElementPressed,
insideElementRelease: eventData.insideElementRelease
});
}
@ -1539,7 +1539,7 @@ function onContainerEnter( tracker, eventData ) {
this.raiseEvent( 'container-enter', {
tracker: tracker,
position: eventData.position,
buttonDownElement: eventData.buttonDownElement,
insideElementPressed: eventData.insideElementPressed,
buttonDownAny: eventData.buttonDownAny
});
}