summaryrefslogtreecommitdiff
path: root/js/ui/palette.js
blob: 7c2add3209cbdb8e2ea3e93cea1e1600fe18b016 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 = 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

})()