var palette = (function(){ var palette_index = localStorage.getItem("ascii.palette") || 1 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 = palette_fn(x>>1) lex.opacity = 1 lex.build() return lex }) palette.bind = function(){ palette.forEach(function(lex, x, y){ if (lex.bound) return lex.bound = true lex.span.addEventListener('mousedown', function(e){ e.preventDefault() 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 || e.ctrlKey) { fillColor = lex.bg } }) }) } return palette })()