]> git.proxmox.com Git - extjs.git/blame - extjs/packages/core/src/event/gesture/MultiTouch.js
add extjs 6.0.1 sources
[extjs.git] / extjs / packages / core / src / event / gesture / MultiTouch.js
CommitLineData
6527f429
DM
1/**\r
2 * A base class for gesture recognizers that involve multiple simultaneous contact points\r
3 * between the screen and the input-device, e.g. 'pinch' and 'rotate'\r
4 * @abstract\r
5 * @private\r
6 */\r
7Ext.define('Ext.event.gesture.MultiTouch', {\r
8 extend: 'Ext.event.gesture.Recognizer',\r
9\r
10 requiredTouchesCount: 2,\r
11\r
12 isTracking: false,\r
13\r
14 isStarted: false,\r
15\r
16 onTouchStart: function(e) {\r
17 var requiredTouchesCount = this.requiredTouchesCount,\r
18 touches = e.touches,\r
19 touchesCount = touches.length;\r
20\r
21 if (touchesCount === requiredTouchesCount) {\r
22 this.start(e);\r
23 }\r
24 else if (touchesCount > requiredTouchesCount) {\r
25 this.end(e);\r
26 }\r
27 },\r
28\r
29 onTouchEnd: function(e) {\r
30 this.end(e);\r
31 },\r
32\r
33 onTouchCancel: function(e) {\r
34 this.end(e, true);\r
35 return false;\r
36 },\r
37\r
38 start: function() {\r
39 if (!this.isTracking) {\r
40 this.isTracking = true;\r
41 this.isStarted = false;\r
42 }\r
43 },\r
44\r
45 end: function(e, isCancel) {\r
46 if (this.isTracking) {\r
47 this.isTracking = false;\r
48\r
49 if (this.isStarted) {\r
50 this.isStarted = false;\r
51\r
52 this[isCancel ? 'fireCancel' : 'fireEnd'](e);\r
53 }\r
54 }\r
55 },\r
56\r
57 reset: function() {\r
58 this.isTracking = this.isStarted = false;\r
59 }\r
60});\r