on master help sign in
Add some files
commit4b8c9796a58ef5b4666416cfdeb1782689587112 authorevancz <info@elm-lang.org> dateThu 21 Mar 2013, 02:35 (14 years ago) parent131a2b6
3 files changed+100
libraries/Native/Graphics/Collage.js+19 runtime/Render/Utils.js+48 runtime/Utils.js+33
libraries/Native/Graphics/Collage.jsnew file+19
@@ -0,0 +1,19 @@
1+
2+Elm.Native.Graphics.Collage = function(elm) {
3+ "use strict";
4+
5+ elm.Native = elm.Native || {};
6+ elm.Native.Graphics = elm.Native.Graphics || {};
7+ if (elm.Native.Graphics.Collage) return elm.Native.Graphics.Collage;
8+
9+ var newElement = Elm.Graphics.Element(elm).newElement;
10+ var render = ElmRuntime.use(ElmRuntime.Render.Collage).render;
11+
12+ function collage(w,h,forms) {
13+ return A3(newElement, w, h,
14+ {ctor: 'Custom', render: render,
15+ model: {w:w, h:h, forms:forms} });
16+ }
17+ return elm.Native.Graphics.Collage = { collage:F3(collage) };
18+
19+};
runtime/Render/Utils.jsnew file+48
@@ -0,0 +1,48 @@
1+
2+ElmRuntime.Render.Utils = function() {
3+'use strict';
4+
5+function newElement(elementType) {
6+ var e = document.createElement(elementType);
7+ e.style.padding = "0";
8+ e.style.margin = "0";
9+ return e;
10+}
11+
12+function addTo(container, elem) {
13+ container.appendChild(elem);
14+}
15+
16+function extract(c) {
17+ if (c._3 === 1) { return 'rgb(' + c._0 + ',' + c._1 + ',' + c._2 + ')'; }
18+ return 'rgba(' + c._0 + ',' + c._1 + ',' + c._2 + ',' + c._3 + ')';
19+}
20+
21+function addTransform(style, trans) {
22+ style.transform = trans;
23+ style.msTransform = trans;
24+ style.MozTransform = trans;
25+ style.webkitTransform = trans;
26+ style.OTransform = trans;
27+}
28+
29+function removeTransform(style) {
30+ style.transform = 'none';
31+ style.msTransform = 'none';
32+ style.MozTransform = 'none';
33+ style.webkitTransform = 'none';
34+ style.OTransform = 'none';
35+}
36+
37+var JS = Elm.JavaScript({});
38+
39+return {addTo:addTo,
40+ newElement:newElement,
41+ extract : extract,
42+ fromList: JS.fromList,
43+ fromString: JS.fromString,
44+ eq: Elm.Native.Utils({}).eq,
45+ addTransform: addTransform,
46+ removeTransform: removeTransform
47+ };
48+};
runtime/Utils.jsnew file+33
@@ -0,0 +1,33 @@
1+
2+(function() {
3+'use strict';
4+
5+ElmRuntime.counter = 0;
6+ElmRuntime.guid = function() { return ElmRuntime.counter++; }
7+
8+ElmRuntime.use = function(M) {
9+ if (typeof M === 'function') M = M();
10+ return M;
11+};
12+
13+function isAlive(input) {
14+ if (!('defaultNumberOfKids' in input)) return true;
15+ var len = input.kids.length;
16+ if (len == 0) return false;
17+ if (len > input.defaultNumberOfKids) return true;
18+ var alive = false;
19+ for (var i = len; i--; ) {
20+ alive = alive || isAlive(input.kids[i]);
21+ }
22+ return alive;
23+}
24+
25+ElmRuntime.filterDeadInputs = function(inputs) {
26+ var temp = [];
27+ for (var i = inputs.length; i--; ) {
28+ if (isAlive(inputs[i])) temp.push(inputs[i]);
29+ }
30+ return temp;
31+};
32+
33+}());