@qooxdoo/framework
Version:
The JS Framework for Coders
161 lines (135 loc) • 5.19 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2014 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Daniel Wagner (danielwagner)
************************************************************************ */
/**
* Normalization for pointer events. Pointer events are hardware-agnostic and
* will be fired regardless of which input type of input device is used (e.g. mouse or touchscreen).
*
* @require(qx.module.Event)
* @require(qx.module.event.Pointer#getPointerType) // static code analysis - this method has to referenced
* @require(qx.module.event.Pointer#getViewportLeft) // static code analysis - this method has to referenced
* @require(qx.module.event.Pointer#getViewportTop) // static code analysis - this method has to referenced
* @require(qx.module.event.Pointer#getDocumentLeft) // static code analysis - this method has to referenced
* @require(qx.module.event.Pointer#getDocumentTop) // static code analysis - this method has to referenced
* @require(qx.module.event.Pointer#getScreenLeft) // static code analysis - this method has to referenced
* @require(qx.module.event.Pointer#getScreenTop) // static code analysis - this method has to referenced
*
* @group (Event_Normalization)
*/
qx.Bootstrap.define("qx.module.event.Pointer", {
statics :
{
/**
* List of event types to be normalized
*/
TYPES : ["pointerdown", "pointerup", "pointermove", "pointercancel", "pointerover", "pointerout"],
/**
* Returns the device type which the event triggered. This can be one
* of the following strings: <code>mouse</code>, <code>pen</code>
* or <code>touch</code>.
*
* @return {String} The type of the pointer.
*/
getPointerType : function() {
// stub for documentation. Implementation is in qx.event.type.dom.Pointer
return false;
},
/**
* Get the horizontal coordinate at which the event occurred relative
* to the viewport.
*
* @return {Number} The horizontal mouse position
*/
getViewportLeft : function() {
// stub for documentation. Implementation is in qx.event.type.dom.Pointer
return false;
},
/**
* Get the vertical coordinate at which the event occurred relative
* to the viewport.
*
* @return {Number} The vertical mouse position
* @signature function()
*/
getViewportTop : function() {
// stub for documentation. Implementation is in qx.event.type.dom.Pointer
return false;
},
/**
* Get the horizontal position at which the event occurred relative to the
* left of the document. This property takes into account any scrolling of
* the page.
*
* @return {Number} The horizontal mouse position in the document.
*/
getDocumentLeft : function() {
// stub for documentation. Implementation is in qx.event.type.dom.Pointer
return false;
},
/**
* Get the vertical position at which the event occurred relative to the
* top of the document. This property takes into account any scrolling of
* the page.
*
* @return {Number} The vertical mouse position in the document.
*/
getDocumentTop : function() {
// stub for documentation. Implementation is in qx.event.type.dom.Pointer
return false;
},
/**
* Get the horizontal coordinate at which the event occurred relative to
* the origin of the screen coordinate system.
*
* Note: This value is usually not very useful unless you want to
* position a native popup window at this coordinate.
*
* @return {Number} The horizontal mouse position on the screen.
*/
getScreenLeft : function() {
// stub for documentation. Implementation is in qx.event.type.dom.Pointer
return false;
},
/**
* Get the vertical coordinate at which the event occurred relative to
* the origin of the screen coordinate system.
*
* Note: This value is usually not very useful unless you want to
* position a native popup window at this coordinate.
*
* @return {Number} The vertical mouse position on the screen.
*/
getScreenTop : function() {
// stub for documentation. Implementation is in qx.event.type.dom.Pointer
return false;
},
/**
* Manipulates the native event object, adding methods if they're not
* already present
*
* @param event {Event} Native event object
* @param element {Element} DOM element the listener was attached to
* @return {Event} Normalized event object
* @internal
*/
normalize : function(event, element)
{
if (!event) {
return event;
}
qx.event.type.dom.Pointer.normalize(event);
return event;
}
},
defer : function(statics) {
qxWeb.$registerEventNormalization(qx.module.event.Pointer.TYPES, statics.normalize);
}
});