Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function () {
- 'use strict';
- WinJS.Namespace.define('GS.Commons', {
- GestureHandler: WinJS.Class.define(
- function (element, ontapcallback) {
- this.element = element;
- this.ontap = ontapcallback;
- this.prepareTarget();
- },
- {
- prepareTarget: function () {
- var gestureObject = new MSGesture(); // Creating a gesture object for each element
- gestureObject.target = this.element;
- this.element.gesture = gestureObject; // Expando gesture poroperty for each element.
- this.element.gesture.pointerType = null;
- this.element.freeCapture = 0; // Expando property for releasing capture
- },
- onMSPointerDown: function (e) {
- if (e.currentTarget.gesture.pointerType === null) { // First contact
- e.currentTarget.gesture.addPointer(e.pointerId); //Attaches pointer to element(e.target is the element)
- e.currentTarget.gesture.pointerType = e.pointerType;
- e.currentTarget.freeCapture = 1;
- }
- else if (e.currentTarget.gesture.pointerType === e.pointerType) {// Contacts of similar type
- e.currentTarget.gesture.addPointer(e.pointerId); //Attaches pointer to element(e.target is the element)
- }
- else if (e.currentTarget.freeCapture === 0) {
- var gestureObject = new MSGesture(); // Creating a gesture object for each element
- gestureObject.target = this.element;
- e.currentTarget.gesture = gestureObject;
- e.currentTarget.gesture.pointerType = e.pointerType;
- e.currentTarget.gesture.addPointer(e.pointerId);
- e.currentTarget.freeCapture = 1;
- }
- },
- onMSGestureTap: function (e) {
- var handler = e.currentTarget.myGestureHandler;
- handler.ontap(e);
- },
- onPointerUp: function (e) {
- // This is to prevent pointerUp being called by another gesture
- if (e.currentTarget.gesture.pointerType === e.pointerType) {
- e.currentTarget.gesture.pointerType = null;
- e.currentTarget.freeCapture = 0;
- }
- },
- clickInEffect: function (e) {
- if (e.which == 3) return false; // Do nothing on right click
- WinJS.UI.Animation.pointerDown(e.currentTarget);
- },
- clickOutEffect: function (e) {
- if (e.which == 3) return false; // Do nothing on right click
- WinJS.UI.Animation.pointerUp(e.currentTarget);
- }
- }),
- onTap: function (element, tapcallback) {
- var gestureHandler = new GS.Commons.GestureHandler(element, tapcallback);
- element.SchoolAppGestureHandler = gestureHandler;
- element.addEventListener('MSPointerDown', gestureHandler.onMSPointerDown, false);
- element.addEventListener("MSPointerDown", gestureHandler.clickInEffect, false);
- element.addEventListener("MSGestureTap", gestureHandler.onMSGestureTap, false);
- element.addEventListener("MSPointerUp", gestureHandler.onPointerUp, false);
- element.addEventListener("MSPointerUp", gestureHandler.clickOutEffect, false);
- element.addEventListener("MSPointerOut", gestureHandler.clickOutEffect, false);
- }
- });
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement