summaryrefslogtreecommitdiff
path: root/js/ui
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-11-22 21:57:25 -0500
committerJules Laplace <jules@okfoc.us>2014-11-22 21:57:25 -0500
commit323e8804ee13f70c35b2a58179cd1a43eea56bcf (patch)
treeb1c6aa6fd50f54d5c7c4976dc5f4e7a6560df254 /js/ui
parentfbbbe8cc0457c2f3f77cfc8d9b8070a593938694 (diff)
editable brush
Diffstat (limited to 'js/ui')
-rw-r--r--js/ui/brush.js54
-rw-r--r--js/ui/canvas.js4
-rw-r--r--js/ui/controls.js3
-rw-r--r--js/ui/palette.js4
4 files changed, 61 insertions, 4 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
diff --git a/js/ui/canvas.js b/js/ui/canvas.js
index 1ee6e1c..4b595a5 100644
--- a/js/ui/canvas.js
+++ b/js/ui/canvas.js
@@ -10,8 +10,11 @@ var canvas = (function(){
})
exports.bind = function(){
+
var last_point = [0,0]
+
exports.forEach(function(lex, x, y){
+
if (lex.bound) return
lex.bound = true
var point = [x,y]
@@ -21,6 +24,7 @@ var canvas = (function(){
lex.span.addEventListener('mousedown', function(e){
e.preventDefault()
dragging = true
+ current_canvas = canvas
if (drawing) {
erasing = (e.which == "3" || e.ctrlKey)
draw(lex, x, y, erasing)
diff --git a/js/ui/controls.js b/js/ui/controls.js
index a37ed16..dcd95b8 100644
--- a/js/ui/controls.js
+++ b/js/ui/controls.js
@@ -8,6 +8,7 @@ var controls = (function(){
brush.generate = controls.circle.generate
brush.generate()
drawing = true
+ brush.modified = false
}
controls.circle.generate = function(){
var fg = brush.fg, bg = brush.bg
@@ -28,7 +29,7 @@ var controls = (function(){
brush.generate = controls.square.generate
brush.generate()
drawing = true
- console.log('square')
+ brush.modified = false
}
controls.square.generate = function(){
var fg = brush.fg, bg = brush.bg
diff --git a/js/ui/palette.js b/js/ui/palette.js
index 2a648a8..69ccaa3 100644
--- a/js/ui/palette.js
+++ b/js/ui/palette.js
@@ -18,7 +18,9 @@ var palette = (function(){
erasing = e.which == "3"
brush.fg = lex.fg
brush.bg = lex.bg
- brush.generate()
+ if (! brush.modified) {
+ brush.generate()
+ }
})
})