var keys = (function(){ var keys = {} var direction = [0,1] keys.bind = function(){ cursor_input.addEventListener('keydown', function(e){ // console.log("keycode:", e.keyCode) switch (e.keyCode) { case 27: // esc if (focused) focused.blur() break case 219: // [ if (current_tool.name != "text") { e.preventDefault() brush.contract(1) brush.modified = false focused = canvas.aa[0][0] break } case 221: // ] if (current_tool.name != "text") { e.preventDefault() brush.expand(1) brush.modified = false break } case 8: e.preventDefault() current_canvas.focusLex(focused.y, focused.x - 1) focused.char = " " focused.build() return case 13: // return e.preventDefault() current_canvas.focusLex(focused.y, focused.x+1) return case 38: // up e.preventDefault() current_canvas.focusLex(focused.y - 1, focused.x + 0) break case 40: // down e.preventDefault() current_canvas.focusLex(focused.y + 1, focused.x + 0) break case 37: // left e.preventDefault() current_canvas.focusLex(focused.y + 0, focused.x - 1) break case 39: // right e.preventDefault() current_canvas.focusLex(focused.y + 0, focused.x + 1) break // default: // if (focused) { focused.key(undefined, e.keyCode) } } }) cursor_input.addEventListener('input', function(e){ /* if (! e.metaKey && ! e.ctrlKey && ! e.altKey) { e.preventDefault() } */ if (current_tool.name == "shader") { cursor_input.value = "" return } var char = cursor_input.value cursor_input.value = "" // console.log("input:", char) if (focused && char) { var y = focused.y, x = focused.x focused.key(char, e.keyCode) if (! ('y' in focused && 'x' in focused) ) { return } // console.log(y, direction[0], x, direction[1]) current_canvas.focusLex(y + direction[0], x + direction[1]) } }) } return keys })()