summaryrefslogtreecommitdiff
path: root/js/tool.js
blob: d3d40c13bd58a0ffea3a46a3f21a978420966d08 (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
var Tool = Model({
	init: function (span) {
		this.el = span
		this.lex = new Lex (span)
		this.name = span.innerHTML
		this.span = span
	},
	use: function(){},
	focus: function(){
		// focused && focused.blur()
		current_tool && current_tool.blur()
		current_tool = this
		this.span.classList.add('focused')
		this.use()
		if (this.name != 'shader') { cursor_input.focus() }
	},
	blur: function(){
		current_tool = null
		this.span.classList.remove('focused')
	}
})

var Checkbox = Tool.extend({
  init: function (span){
    this.__init(span)
    var state = this.name[0] == "x"
    this.name = this.name.replace(/^[x_] /,"")
    this.update(state)
  },
  update: function(state){
		if (state) this.el.innerHTML = "x " + this.name
		else       this.el.innerHTML = "_ " + this.name
  }
})