@@ -1,6 +1,14 @@
1+/*
2+import Signal
3+import Native.Misc
4+*/
15
2−function nativeMouse(elm) {
3− var position = Elm.Signal.constant(Value.Tuple(0,0));
6+(function() {
7+ 'use strict';
8+
9+ var Misc = Elm.Native.Misc;
10+
11+ var position = Elm.Signal.constant(Misc.Tuple(0,0));
412 position.defaultNumberOfKids = 2;
513
614 // do not get rid of x and y. By setting their default number
@@ -13,7 +21,7 @@ function nativeMouse(elm) {
1321
1422 var isDown = Elm.Signal.constant(false);
1523 var isClicked = Elm.Signal.constant(false);
16− var clicks = Elm.Signal.constant(Value.Tuple());
24+ var clicks = Elm.Signal.constant(Misc.Tuple());
1725
1826 function getXY(e) {
1927 var posx = 0;
@@ -28,27 +36,27 @@ function nativeMouse(elm) {
2836 posy = e.clientY + document.body.scrollTop +
2937 document.documentElement.scrollTop;
3038 }
31− return Value.Tuple(posx, posy);
39+ return Misc.Tuple(posx, posy);
3240 }
3341
34− Value.addListener(document, 'click', function(e) {
42+ Misc.addListener(document, 'click', function(e) {
3543 var hasListener1 = Dispatcher.notify(isClicked.id, true);
36− var hasListener2 = Dispatcher.notify(clicks.id, Value.Tuple());
44+ var hasListener2 = Dispatcher.notify(clicks.id, Misc.Tuple());
3745 Dispatcher.notify(isClicked.id, false);
3846 if (!hasListener1 && !hasListener2)
3947 this.removeEventListener('click',arguments.callee,false);
4048 });
41− Value.addListener(document, 'mousedown', function(e) {
49+ Misc.addListener(document, 'mousedown', function(e) {
4250 var hasListener = Dispatcher.notify(isDown.id, true);
4351 if (!hasListener)
4452 this.removeEventListener('mousedown',arguments.callee,false);
4553 });
46− Value.addListener(document, 'mouseup', function(e) {
54+ Misc.addListener(document, 'mouseup', function(e) {
4755 var hasListener = Dispatcher.notify(isDown.id, false);
4856 if (!hasListener)
4957 this.removeEventListener('mouseup',arguments.callee,false);
5058 });
51− Value.addListener(document, 'mousemove', function(e) {
59+ Misc.addListener(document, 'mousemove', function(e) {
5260 var hasListener = Dispatcher.notify(position.id, getXY(e));
5361 if (!hasListener)
5462 this.removeEventListener('mousemove',arguments.callee,false);
@@ -57,17 +65,17 @@ function nativeMouse(elm) {
5765 var clickedOn = function(elem) {
5866 var node = Render.render(elem);
5967 var click = Elm.Signal.constant(false);
60− Value.addListener(node, 'click', function(e) {
68+ Misc.addListener(node, 'click', function(e) {
6169 Dispatcher.notify(click.id, true);
6270 Dispatcher.notify(click.id, false);
6371 });
64− return Value.Tuple(Value.wrap(node), click);
72+ return Misc.Tuple(Misc.wrap(node), click);
6573 };
66− elm.Native.Mouse = {position: position,
74+ Elm.Native.Mouse = {position: position,
6775 x:x,
6876 y:y,
6977 isClicked: isClicked,
7078 isDown: isDown,
7179 clicks: clicks,
7280 isClickedOn: clickedOn};
73−}
81+}());