diff options
Diffstat (limited to 'js/ui/keys.js')
| -rw-r--r-- | js/ui/keys.js | 103 |
1 files changed, 52 insertions, 51 deletions
diff --git a/js/ui/keys.js b/js/ui/keys.js index c8df3e8..68b3fbf 100644 --- a/js/ui/keys.js +++ b/js/ui/keys.js @@ -122,57 +122,58 @@ var keys = (function(){ ! isNaN(n) && f(n) } } - keys.arrow_key = function (lex, canvas, prop, rebuild_prop, min, max) { - return function (e){ - switch (e.keyCode) { - case 38: // up - e.preventDefault() - canvas[prop] = Math.min(canvas[prop]+1, max) - lex.char = "" + canvas[prop] - lex.build() - canvas[rebuild_prop]() - break - case 40: // down - e.preventDefault() - canvas[prop] = Math.max(canvas[prop]-1, min) - lex.char = "" + canvas[prop] - lex.build() - canvas[rebuild_prop]() - break - } - } - } - keys.single_numeral_key = function (lex, canvas, prop, min, max) { - return keys.int_key(function(n, keyCode){ - if (n == 0) n = 10 - lex.blur() - lex.char = ""+n - lex.build() - canvas[prop] = n - canvas.rebuild() - }) - } - keys.multi_numeral_key = function (lex, digits){ - return keys.int_key(function(n, keyCode){ - lex.read() - if (lex.char.length < digits) { - n = parseInt(lex.char) * 10 + n - } - lex.char = ""+n - lex.build() - }) - } - keys.multi_numeral_blur = function (lex, canvas, prop, min, max){ - return function(){ - var current = parseInt(lex.char) - var n = clamp(current, min, max) - if (! n || isNaN(current)) return - lex.char = n+"" - lex.build() - canvas[prop] = n - canvas.resize(canvas.w, canvas.h) - } - } + + keys.arrow_key = function (lex, canvas, prop, rebuild_prop, min, max) { + return function (e){ + switch (e.keyCode) { + case 38: // up + e.preventDefault() + canvas[prop] = Math.min(canvas[prop]+1, max) + lex.char = "" + canvas[prop] + lex.build() + canvas[rebuild_prop]() + break + case 40: // down + e.preventDefault() + canvas[prop] = Math.max(canvas[prop]-1, min) + lex.char = "" + canvas[prop] + lex.build() + canvas[rebuild_prop]() + break + } + } + } + keys.single_numeral_key = function (lex, canvas, prop, min, max) { + return keys.int_key(function(n, keyCode){ + if (n == 0) n = 10 + lex.blur() + lex.char = ""+n + lex.build() + canvas[prop] = n + canvas.rebuild() + }) + } + keys.multi_numeral_key = function (lex, digits){ + return keys.int_key(function(n, keyCode){ + lex.read() + if (lex.char.length < digits) { + n = parseInt(lex.char) * 10 + n + } + lex.char = ""+n + lex.build() + }) + } + keys.multi_numeral_blur = function (lex, canvas, prop, min, max){ + return function(){ + var current = parseInt(lex.char) + var n = clamp(current, min, max) + if (! n || isNaN(current)) return + lex.char = n+"" + lex.build() + canvas[prop] = n + canvas.resize(canvas.w, canvas.h) + } + } return keys })() |
