diff options
| -rw-r--r-- | js/color.js | 2 | ||||
| -rw-r--r-- | js/ui/palette.js | 20 |
2 files changed, 18 insertions, 4 deletions
diff --git a/js/color.js b/js/color.js index 9dbd3e1..f3826e8 100644 --- a/js/color.js +++ b/js/color.js @@ -21,6 +21,8 @@ color_names.forEach(function(name, i){ colors[name] = i }) function get_inverse (n) { return colors[all_color_inv_order.indexOf(color_names[n])] } +function mirc_color (n) { return mod(n, 16)|0 } +function mirc_color_reverse (n) { return mod(-(n+1), 16)|0 } function all_hue (n) { return colors[all_color_hue_order[mod(n, 16)|0]] } function all_inv_hue (n) { return colors[all_color_inv_order[mod(n, 16)|0]] } function hue (n) { return colors[color_hue_order[mod(n, 11)|0]] } diff --git a/js/ui/palette.js b/js/ui/palette.js index e03e17b..7c2add3 100644 --- a/js/ui/palette.js +++ b/js/ui/palette.js @@ -1,8 +1,12 @@ var palette = (function(){ + var palette_index = localStorage.getItem("ascii.palette") || 0 + var palette_list = [all_hue, all_inv_hue, mirc_color, mirc_color_reverse] + var palette_fn = palette_list[palette_index] var palette = new Matrix (32, 2, function(x,y){ var lex = new Lex (x,y) - lex.bg = all_inv_hue(x>>1) + lex.bg = palette_fn(x>>1) + lex.opacity = 1 lex.build() return lex }) @@ -14,14 +18,22 @@ var palette = (function(){ lex.span.addEventListener('mousedown', function(e){ e.preventDefault() - dragging = true - erasing = e.which == "3" + if (e.shiftKey) { + palette_index = (palette_index+1) % palette_list.length + localStorage.setItem("ascii.palette", palette_index) + palette_fn = palette_list[palette_index] + palette.forEach(function(lex,x,y){ + lex.bg = palette_fn(x>>1) + lex.build() + }) + return + } brush.fg = lex.bg brush.bg = lex.bg if (! brush.modified) { brush.generate() } - if (filling) { + if (filling || e.ctrlKey) { fillColor = lex.bg } }) |
