From c2d83e9195d6ae00836226d039a594d7e917908c Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Fri, 22 May 2015 18:48:49 +0200 Subject: unicode functions and ascii brushes --- js/ui/letters.js | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 js/ui/letters.js (limited to 'js/ui') diff --git a/js/ui/letters.js b/js/ui/letters.js new file mode 100644 index 0000000..9801a45 --- /dev/null +++ b/js/ui/letters.js @@ -0,0 +1,63 @@ +var letters = (function(){ + + var letters = new Matrix (1, 1, function(x,y){ + var lex = new Lex (x,y) + return lex + }) + + letters.repaint = function(charset){ + var chars = unicode.block(charset, 32) + if (chars[0] != " ") chars.unshift(" ") + letters.resize( 32, Math.ceil( chars.length / 32 ) ) + + var i = 0 + + letters.forEach(function(lex,x,y){ + var char = chars[i++] + if (char == " ") { + lex.bg = brush.fg + lex.fg = brush.bg + } + else { + lex.bg = brush.bg + lex.fg = brush.fg + } + lex.char = char + lex.opacity = 1 + lex.build() + }) + } + + letters.bind = function(){ + letters.forEach(function(lex, x, y){ + if (lex.bound) return + lex.bound = true + + lex.span.addEventListener('mousedown', function(e){ + e.preventDefault() + brush.char = lex.char + if (e.ctrlKey || e.which == 3) { + brush.bg = brush.fg + brush.fg = fillColor + } + else { + if (lex.char == " ") { + brush.bg = brush.fg + } + else if (brush.bg != fillColor) { + brush.fg = brush.bg + brush.bg = fillColor + } + } + if (! brush.modified) { + brush.generate() + } + }) + lex.span.addEventListener('contextmenu', function(e){ + e.preventDefault() + }) + }) + } + + return letters +})() \ No newline at end of file -- cgit v1.2.3-70-g09d2