summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--css/sally.css3
-rw-r--r--js/ui/letters.js11
-rw-r--r--js/ui/palette.js31
3 files changed, 34 insertions, 11 deletions
diff --git a/css/sally.css b/css/sally.css
index f2d7405..29a0b66 100644
--- a/css/sally.css
+++ b/css/sally.css
@@ -98,6 +98,9 @@ textarea { font-size:12pt; width: 37vw; height: 300px; background: #333; color:
}
#letters_rapper {
display: inline-block;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
}
.close { position: absolute; top: 20px; right: 20px; z-index: 2; padding: 10px; background: black; cursor: pointer; }
#webcam_rapper { display: none; position: absolute; top: 0px; left: 0px; width:100%;height:100%; box-sizing:border-box; border: 40px solid rgba(0,0,0,0.5); background-color: rgba(0,0,0,0.5); }
diff --git a/js/ui/letters.js b/js/ui/letters.js
index 9801a45..cd9e50b 100644
--- a/js/ui/letters.js
+++ b/js/ui/letters.js
@@ -1,11 +1,15 @@
var letters = (function(){
+ var last_charset = ""
+
var letters = new Matrix (1, 1, function(x,y){
var lex = new Lex (x,y)
return lex
})
letters.repaint = function(charset){
+ charset = charset || last_charset
+ last_charset = charset
var chars = unicode.block(charset, 32)
if (chars[0] != " ") chars.unshift(" ")
letters.resize( 32, Math.ceil( chars.length / 32 ) )
@@ -14,13 +18,13 @@ var letters = (function(){
letters.forEach(function(lex,x,y){
var char = chars[i++]
- if (char == " ") {
+ if (palette.chars.indexOf(brush.char) > 1) {
lex.bg = brush.fg
lex.fg = brush.bg
}
else {
- lex.bg = brush.bg
- lex.fg = brush.fg
+ lex.bg = colors.black
+ lex.fg = brush.fg == fillColor ? colors.black : brush.fg
}
lex.char = char
lex.opacity = 1
@@ -52,6 +56,7 @@ var letters = (function(){
if (! brush.modified) {
brush.generate()
}
+ palette.repaint()
})
lex.span.addEventListener('contextmenu', function(e){
e.preventDefault()
diff --git a/js/ui/palette.js b/js/ui/palette.js
index 063e4aa..1fc17cf 100644
--- a/js/ui/palette.js
+++ b/js/ui/palette.js
@@ -1,13 +1,15 @@
var palette = (function(){
- var palette_index = localStorage.getItem("ascii.palette") || 1
- var palette_list = [all_hue, all_inv_hue, mirc_color, mirc_color_reverse]
- var palette_fn = palette_list[palette_index]
- var palette_chars = " ▓▒░"
var palette = new Matrix (32, 2, function(x,y){
var lex = new Lex (x,y)
return lex
})
+
+ var palette_index = localStorage.getItem("ascii.palette") || 1
+ var palette_list = [all_hue, all_inv_hue, mirc_color, mirc_color_reverse]
+ var palette_fn = palette_list[palette_index]
+ palette.chars = " ▓▒░"
+
palette.repaint = function(){
palette.forEach(function(lex,x,y){
if (y < 2) {
@@ -18,7 +20,7 @@ var palette = (function(){
lex.bg = fillColor
lex.fg = palette_fn(x>>1)
}
- lex.char = palette_chars[y]
+ lex.char = palette.chars[y]
lex.opacity = 1
lex.build()
if (lex.char == "_") lex.char = " "
@@ -48,9 +50,21 @@ var palette = (function(){
return
}
if (e.ctrlKey || e.which == 3) return
- brush.fg = lex.fg
- brush.bg = lex.bg
- brush.char = lex.char
+ if (brush.char == " " && lex.char == " ") {
+ brush.fg = lex.fg
+ brush.bg = lex.bg
+ brush.char = lex.char
+ }
+ else if (lex.char != " ") {
+ brush.fg = lex.bg
+ brush.bg = lex.fg
+ brush.char = lex.char
+ }
+ else {
+ brush.fg = lex.bg
+ brush.bg = fillColor
+// brush.char = lex.char
+ }
brush.opacity = lex.opacity
if (! brush.modified) {
brush.generate()
@@ -58,6 +72,7 @@ var palette = (function(){
if (filling || e.ctrlKey) {
fillColor = lex.bg
}
+ letters.repaint()
})
lex.span.addEventListener('contextmenu', function(e){