2012-12-18 04:44:57 +00:00
|
|
|
|
|
|
|
Elm.Touch = function() {
|
|
|
|
var touches = Elm.Signal.constant(["Nil"]);
|
|
|
|
|
2013-01-07 08:47:16 +00:00
|
|
|
function touch(t) {
|
|
|
|
return {_ : [true], x: [t.pageX], y: [t.pageY], id: [t.identifier] };
|
|
|
|
}
|
2012-12-18 04:44:57 +00:00
|
|
|
|
2013-01-07 08:47:16 +00:00
|
|
|
function listen(name) {
|
|
|
|
function update(e) {
|
|
|
|
var ts = Elm.JavaScript.castJSArrayToList(e.touches);
|
|
|
|
var hasListener = Dispatcher.notify(touches.id, Elm.List.map(touch)(ts));
|
|
|
|
if (!hasListener)
|
|
|
|
return this.removeEventListener(name,arguments.callee,false);
|
|
|
|
e.preventDefault();
|
|
|
|
}
|
|
|
|
Value.addListener(document, name, update);
|
|
|
|
}
|
|
|
|
|
|
|
|
listen("touchstart");
|
|
|
|
listen("touchmove");
|
|
|
|
listen("touchend");
|
|
|
|
listen("touchcancel");
|
|
|
|
listen("touchleave");
|
|
|
|
|
|
|
|
return { touches: touches };
|
2012-12-18 04:44:57 +00:00
|
|
|
}();
|