summaryrefslogtreecommitdiff
path: root/js/ui
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2015-05-22 18:48:49 +0200
committerJulie Lala <jules@okfoc.us>2015-05-22 18:48:49 +0200
commitc2d83e9195d6ae00836226d039a594d7e917908c (patch)
treedca01f9de1e372f2806d776863f2b448999fb888 /js/ui
parent6037078f595ec80a25dcef213383745b3a0bbd50 (diff)
unicode functions and ascii brushes
Diffstat (limited to 'js/ui')
-rw-r--r--js/ui/letters.js63
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