on 79a747c help sign in
elk/libraries/Native/Window.js
29 lines 833 B history raw
1/*
2import Signal
3import Native.Misc
4*/
6(function() {
7 'use strict';
9 var Misc = Elm.Native.Misc;
11 var dimensions = Elm.Signal.constant(Misc.Tuple(window.innerWidth,
12 window.innerHeight));
13 dimensions.defaultNumberOfKids = 2;
15 var width = Elm.Signal.lift(function(p){return p._0;})(dimensions);
16 width.defaultNumberOfKids = 0;
18 var height = Elm.Signal.lift(function(p){return p._1;})(dimensions);
19 height.defaultNumberOfKids = 0;
21 Misc.addListener(window, 'resize', function(e) {
22 var w = document.getElementById('widthChecker').offsetWidth;
23 var hasListener = Dispatcher.notify(dimensions.id,
24 Misc.Tuple(w, window.innerHeight));
25 if (!hasListener)
26 this.removeEventListener('resize',arguments.callee,false);
27 });
28 Elm.Native.Window = {dimensions:dimensions,width:width,height:height};
29}());