source: Dev/branches/rest-dojo-ui/client/dojo/touch.js @ 274

Last change on this file since 274 was 256, checked in by hendrikvanantwerpen, 13 years ago

Reworked project structure based on REST interaction and Dojo library. As
soon as this is stable, the old jQueryUI branch can be removed (it's
kept for reference).

File size: 2.9 KB
Line 
1define(["./_base/kernel", "./on", "./has", "./mouse"], function(dojo, on, has, mouse){
2// module:
3//              dojo/touch
4
5/*=====
6        dojo.touch = {
7                // summary:
8                //              This module provides unified touch event handlers by exporting
9                //              press, move, release and cancel which can also run well on desktop.
10                //              Based on http://dvcs.w3.org/hg/webevents/raw-file/tip/touchevents.html
11                //
12                // example:
13                //              1. Used with dojo.connect()
14                //              |       dojo.connect(node, dojo.touch.press, function(e){});
15                //              |       dojo.connect(node, dojo.touch.move, function(e){});
16                //              |       dojo.connect(node, dojo.touch.release, function(e){});
17                //              |       dojo.connect(node, dojo.touch.cancel, function(e){});
18                //
19                //              2. Used with dojo.on
20                //              |       define(["dojo/on", "dojo/touch"], function(on, touch){
21                //              |               on(node, touch.press, function(e){});
22                //              |               on(node, touch.move, function(e){});
23                //              |               on(node, touch.release, function(e){});
24                //              |               on(node, touch.cancel, function(e){});
25                //
26                //              3. Used with dojo.touch.* directly
27                //              |       dojo.touch.press(node, function(e){});
28                //              |       dojo.touch.move(node, function(e){});
29                //              |       dojo.touch.release(node, function(e){});
30                //              |       dojo.touch.cancel(node, function(e){});
31               
32                press: function(node, listener){
33                        // summary:
34                        //              Register a listener to 'touchstart'|'mousedown' for the given node
35                        // node: Dom
36                        //              Target node to listen to
37                        // listener: Function
38                        //              Callback function
39                        // returns:
40                        //              A handle which will be used to remove the listener by handle.remove()
41                },
42                move: function(node, listener){
43                        // summary:
44                        //              Register a listener to 'touchmove'|'mousemove' for the given node
45                        // node: Dom
46                        //              Target node to listen to
47                        // listener: Function
48                        //              Callback function
49                        // returns:
50                        //              A handle which will be used to remove the listener by handle.remove()
51                },
52                release: function(node, listener){
53                        // summary:
54                        //              Register a listener to 'touchend'|'mouseup' for the given node
55                        // node: Dom
56                        //              Target node to listen to
57                        // listener: Function
58                        //              Callback function
59                        // returns:
60                        //              A handle which will be used to remove the listener by handle.remove()
61                },
62                cancel: function(node, listener){
63                        // summary:
64                        //              Register a listener to 'touchcancel'|'mouseleave' for the given node
65                        // node: Dom
66                        //              Target node to listen to
67                        // listener: Function
68                        //              Callback function
69                        // returns:
70                        //              A handle which will be used to remove the listener by handle.remove()
71                }
72        };
73=====*/
74
75        function _handle(/*String - press | move | release | cancel*/type){
76                return function(node, listener){//called by on(), see dojo.on
77                        return on(node, type, listener);
78                };
79        }
80        var touch = has("touch");
81        //device neutral events - dojo.touch.press|move|release|cancel
82        dojo.touch = {
83                press: _handle(touch ? "touchstart": "mousedown"),
84                move: _handle(touch ? "touchmove": "mousemove"),
85                release: _handle(touch ? "touchend": "mouseup"),
86                cancel: touch ? _handle("touchcancel") : mouse.leave
87        };
88        return dojo.touch;
89});
Note: See TracBrowser for help on using the repository browser.