Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit 4cfb68d

Browse files
authored
Merge pull request #99 from jacereda/touchevent
TouchEvent support
2 parents cddbcfe + 38ee0fd commit 4cfb68d

File tree

2 files changed

+145
-0
lines changed

2 files changed

+145
-0
lines changed

src/DOM/Event/TouchEvent.js

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
"use strict";
2+
3+
exports.identifier = function (t) {
4+
return t.identifier;
5+
};
6+
7+
exports.screenX = function (t) {
8+
return t.screenX;
9+
};
10+
11+
exports.screenY = function (t) {
12+
return t.screenY;
13+
};
14+
15+
exports.clientX = function (t) {
16+
return t.clientX;
17+
};
18+
19+
exports.clientY = function (t) {
20+
return t.clientY;
21+
};
22+
23+
exports.pageX = function (t) {
24+
return t.pageX;
25+
};
26+
27+
exports.pageY = function (t) {
28+
return t.pageY;
29+
};
30+
31+
exports.target = function (t) {
32+
return t.target;
33+
};
34+
35+
exports.length = function (l) {
36+
return l.length;
37+
};
38+
39+
exports._item = function (i) {
40+
return function(l) {
41+
return l.item(i);
42+
};
43+
};
44+
45+
exports.touches = function (e) {
46+
return e.touches;
47+
};
48+
49+
exports.targetTouches = function (e) {
50+
return e.targetTouches;
51+
};
52+
53+
exports.changedTouches = function (e) {
54+
return e.changedTouches;
55+
};
56+
57+
exports.altKey = function (e) {
58+
return e.altKey;
59+
};
60+
61+
exports.metaKey = function (e) {
62+
return e.metaKey;
63+
};
64+
65+
exports.ctrlKey = function (e) {
66+
return e.ctrlKey;
67+
};
68+
69+
exports.shiftKey = function (e) {
70+
return e.shiftKey;
71+
};

src/DOM/Event/TouchEvent.purs

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
module DOM.Event.TouchEvent
2+
( module T
3+
, Touch
4+
, TouchList
5+
, eventToTouchEvent
6+
, screenX
7+
, screenY
8+
, clientX
9+
, clientY
10+
, pageX
11+
, pageY
12+
, target
13+
, length
14+
, item
15+
, touches
16+
, targetTouches
17+
, changedTouches
18+
, altKey
19+
, metaKey
20+
, ctrlKey
21+
, shiftKey
22+
) where
23+
24+
import Prelude
25+
import DOM.Event.Types (Event, EventTarget, TouchEvent, readTouchEvent)
26+
import DOM.Event.Types (TouchEvent, touchEventToEvent, readTouchEvent) as T
27+
import Data.Foreign (F, toForeign)
28+
import Data.Maybe (Maybe)
29+
import Data.Nullable (Nullable, toMaybe)
30+
31+
foreign import data Touch :: Type
32+
33+
foreign import identifier :: Touch -> Int
34+
35+
foreign import screenX :: Touch -> Int
36+
37+
foreign import screenY :: Touch -> Int
38+
39+
foreign import clientX :: Touch -> Int
40+
41+
foreign import clientY :: Touch -> Int
42+
43+
foreign import pageX :: Touch -> Int
44+
45+
foreign import pageY :: Touch -> Int
46+
47+
foreign import target :: Touch -> EventTarget
48+
49+
50+
foreign import data TouchList :: Type
51+
52+
foreign import length :: TouchList -> Int
53+
54+
foreign import _item :: Int -> TouchList -> Nullable Touch
55+
56+
item :: Int -> TouchList -> Maybe Touch
57+
item i = toMaybe <<< _item i
58+
59+
eventToTouchEvent :: Event -> F TouchEvent
60+
eventToTouchEvent = readTouchEvent <<< toForeign
61+
62+
foreign import touches :: TouchEvent -> TouchList
63+
64+
foreign import targetTouches :: TouchEvent -> TouchList
65+
66+
foreign import changedTouches :: TouchEvent -> TouchList
67+
68+
foreign import altKey :: TouchEvent -> Boolean
69+
70+
foreign import metaKey :: TouchEvent -> Boolean
71+
72+
foreign import ctrlKey :: TouchEvent -> Boolean
73+
74+
foreign import shiftKey :: TouchEvent -> Boolean

0 commit comments

Comments
 (0)