forked from reasonml-community/Mareo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDom_html.re
39 lines (24 loc) · 1.31 KB
/
Dom_html.re
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
type imageElement;
type canvasRenderingContext2D;
type canvasElement;
external document : Dom.document = "" [@@bs.val];
external window : Dom.window = "" [@@bs.val];
/* external createImg: (_ [@bs.as "img"]) -> document -> imageElement = "createElement" [@@bs.send] */
external createImg : Dom.document => _ [@bs.as "img"] => imageElement =
"createElement" [@@bs.send];
external requestAnimationFrame : (float => unit) => unit = "" [@@bs.val];
external getElementById : Dom.document => string => option Dom.element =
"" [@@bs.return null_to_opt] [@@bs.send];
external addEventListener :
Dom.document => string => (Dom.event_like 'a => Js.boolean) => Js.boolean => unit =
"" [@@bs.send];
external addEventListenerImg :
imageElement => string => (Dom.event_like 'a => Js.boolean) => Js.boolean => unit =
"addEventListener" [@@bs.send];
/* unsafe casts */
external imageElementToJsObj : imageElement => Js.t {..} = "%identity";
external canvasRenderingContext2DToJsObj : canvasRenderingContext2D => Js.t {..} = "%identity";
external canvasElementToJsObj : canvasElement => Js.t {..} = "%identity";
external keyboardEventToJsObj : Dom.keyboardEvent => Js.t {..} = "%identity";
external elementToCanvasElement : Dom.element => canvasElement = "%identity";
external windowToJsObj : Dom.window => Js.t {..} = "%identity";