Add a way to construct HSV colors with hsv and hsva. Also add a now function to Date.

This commit is contained in:
evancz 2012-11-22 20:32:32 -08:00
parent b9ae74b9e5
commit d4012e466a
2 changed files with 52 additions and 33 deletions

View file

@ -1,6 +1,13 @@
Elm.Date = function() { Elm.Date = function() {
function dateNow() { return new window.Date; }
function now(t) {
var clock = Elm.Signal.constant(dateNow());
function tellTime() { Dispatcher.notify(clock.id, dateNow()); }
setInterval(tellTime, t);
return clock;
}
function readDate(str) { function readDate(str) {
var d = new window.Date(Elm.JavaScript.castStringToJSString(str)); var d = new window.Date(Elm.JavaScript.castStringToJSString(str));
if (isNaN(d.getTime())) return ["Nothing"]; if (isNaN(d.getTime())) return ["Nothing"];
@ -12,6 +19,7 @@ Elm.Date = function() {
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
return { return {
now : now,
read : readDate, read : readDate,
year : function(d) { return d.getFullYear(); }, year : function(d) { return d.getFullYear(); },
month : function(d) { return [monthTable[d.getMonth()]]; }, month : function(d) { return [monthTable[d.getMonth()]]; },

View file

@ -1,4 +1,5 @@
Elm.Color = function() { Elm.Color = function() {
function Color_0(a1) { function Color_0(a1) {
return function(a2) { return function(a2) {
return function(a3) { return function(a3) {
@ -36,6 +37,16 @@ function complement(rgb) {
return toRGB(hsv); return toRGB(hsv);
} }
function hsva(h) { return function(s) { return function(v) { return function(a) {
var clr = toRGB({hue:h, saturation:s, value:v});
clr[4] = a;
return clr;
}; }; };
}
function hsv(h) { return function(s) { return function(v) {
return toRGB({hue:h, saturation:s, value:v}); }; }; }
function toHSV(rgb) { function toHSV(rgb) {
var hsv = {}; var hsv = {};
var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0; var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0;
@ -71,5 +82,5 @@ function toRGB(hsv) {
var m = hsv.value - c; var m = hsv.value - c;
return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ]; return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ];
} }
return{rgba:rgba_1, rgb:rgb_2, red:red_3, green:green_4, blue:blue_5, yellow:yellow_6, cyan:cyan_7, magenta:magenta_8, black:black_9, white:white_10, gray:gray_11, grey:grey_12,complement:complement,extract:extract} return{rgba:rgba_1, rgb:rgb_2, hsva:hsva, hsv:hsv, red:red_3, green:green_4, blue:blue_5, yellow:yellow_6, cyan:cyan_7, magenta:magenta_8, black:black_9, white:white_10, gray:gray_11, grey:grey_12,complement:complement,extract:extract}
}(); }();