function Keyboard() { this.listen = function(event) { // save if(event.key == "s" && (event.ctrlKey || event.metaKey)){ dotgrid.export(); return; } // undo if(event.key == "z" && (event.ctrlKey || event.metaKey)){ dotgrid.erase(); return; } switch (event.keyCode) { case 83 : dotgrid.draw_arc(event.shiftKey ? "1,1" : "0,1"); break; // 'S' case 65 : dotgrid.draw_arc(event.shiftKey ? "1,0" : "0,0"); break; // 'a' case 68 : dotgrid.draw_line(); break; // 'd' case 70 : dotgrid.draw_bezier(); break; // 'f' case 82 : dotgrid.draw_close(); break; // 'r' case 187 : dotgrid.mod_thickness(1); break; // '+' case 189 : dotgrid.mod_thickness(-1); break; // '-' case 221 : dotgrid.mod_thickness(1); break; // ']' case 219 : dotgrid.mod_thickness(-1); break; // '[' case 191 : dotgrid.mod_linecap(1); break; // '/' case 32 : dotgrid.mirror = dotgrid.mirror == true ? false : true; dotgrid.draw(); break; // 'space' case 81 : dotgrid.reset(); break; // 'Q' case 27 : dotgrid.reset(); break; // 'ESC' case 87 : dotgrid.erase(); break; // 'W' case 8 : dotgrid.erase(); break; // 'Backspace' case 69 : dotgrid.export(); break; // 'e' case 13 : dotgrid.export(); break; // 'e' case 9 : dotgrid.toggle_fill(); event.preventDefault(); break; // 'tab' case 38 : dotgrid.mod_move(0,-10); break; // 'up' case 40 : dotgrid.mod_move(0,10); break; // 'down' case 37 : dotgrid.mod_move(-10,0); break; // 'left' case 39 : dotgrid.mod_move(10,0); break; // 'right' } dotgrid.draw(); } }