diff options
| author | Julie Lala <jules@okfoc.us> | 2015-05-22 18:48:49 +0200 |
|---|---|---|
| committer | Julie Lala <jules@okfoc.us> | 2015-05-22 18:48:49 +0200 |
| commit | c2d83e9195d6ae00836226d039a594d7e917908c (patch) | |
| tree | dca01f9de1e372f2806d776863f2b448999fb888 /js/ui | |
| parent | 6037078f595ec80a25dcef213383745b3a0bbd50 (diff) | |
unicode functions and ascii brushes
Diffstat (limited to 'js/ui')
| -rw-r--r-- | js/ui/letters.js | 63 |
1 files changed, 63 insertions, 0 deletions
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 |
