diff options
Diffstat (limited to 'js/ui/brush.js')
| -rw-r--r-- | js/ui/brush.js | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/js/ui/brush.js b/js/ui/brush.js index 3055f54..a055a97 100644 --- a/js/ui/brush.js +++ b/js/ui/brush.js @@ -1,10 +1,12 @@ var brush = (function(){ - + var brush = new Matrix (5, 5, function(x,y){ var lex = new Lex (x,y) lex.build() return lex }) + + brush.modified = false brush.bind = function(){ brush.forEach(function(lex, x, y){ @@ -19,7 +21,55 @@ var brush = (function(){ }) } - + + brush.bind = function(){ + + var last_point = [0,0] + var dragging = false + + brush.forEach(function(lex, x, y){ + + if (lex.bound) return + lex.bound = true + + var point = [x,y] + lex.span.addEventListener('contextmenu', function(e){ + e.preventDefault() + }) + lex.span.addEventListener('mousedown', function(e){ + e.preventDefault() + current_canvas = brush + brush.modified = true + dragging = true + erasing = (e.which == "3" || e.ctrlKey) + if (erasing) { + lex.clear() + } + else { + lex.fill(brush.fg, brush.bg) + } + lex.focus() + }) + lex.span.addEventListener('mousemove', function(e){ + e.preventDefault() + if (! dragging) { + return + } + erasing = (e.which == "3" || e.ctrlKey) + if (erasing) { + lex.clear() + } + else { + lex.fill(brush.fg, brush.bg) + } + lex.focus() + }) + }) + window.addEventListener("mouseup", function(){ + dragging = false + }) + } + brush.fg = 0 brush.bg = 1 |
