Files
pointvec/sources/scripts/keyboard.js

61 lines
1.9 KiB
JavaScript
Raw Normal View History

2016-12-31 10:37:10 -07:00
function Keyboard()
{
2017-11-07 15:41:41 +13:00
this.listen = function(e)
2016-12-31 10:37:10 -07:00
{
2017-11-06 08:53:59 +13:00
// save
2017-11-07 15:41:41 +13:00
if(e.key == "s" && (e.ctrlKey || e.metaKey)){
2017-11-06 08:53:59 +13:00
dotgrid.export();
return;
}
2017-11-06 08:38:14 +13:00
2017-11-06 14:10:37 +13:00
// undo
2017-11-07 15:41:41 +13:00
if(e.key == "z" && (e.ctrlKey || e.metaKey)){
2017-11-06 14:10:37 +13:00
dotgrid.erase();
return;
}
2017-11-08 10:40:13 +13:00
// new
if(e.key == "n" && (e.ctrlKey || e.metaKey)){
dotgrid.clear();
return;
}
2017-11-07 15:41:41 +13:00
// Reset
if((e.key == "Backspace" || e.key == "Delete") && e.ctrlKey && e.shiftKey){
e.preventDefault();
dotgrid.theme.reset();
return;
}
switch (e.keyCode) {
case 83 : dotgrid.draw_arc(e.shiftKey ? "1,1" : "0,1"); break; // 'S'
case 65 : dotgrid.draw_arc(e.shiftKey ? "1,0" : "0,0"); break; // 'a'
2017-11-05 22:51:16 +02:00
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; // '-'
2017-11-06 14:10:37 +13:00
case 221 : dotgrid.mod_thickness(1); break; // ']'
case 219 : dotgrid.mod_thickness(-1); break; // '['
2017-11-05 22:51:16 +02:00
case 191 : dotgrid.mod_linecap(1); break; // '/'
2017-11-06 14:10:37 +13:00
2017-11-11 08:46:11 +13:00
case 32 : dotgrid.mod_mirror(); break; // 'space'
2016-12-31 13:55:35 -07:00
2017-11-05 22:51:16 +02:00
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'
2017-11-06 23:15:15 -08:00
case 13 : dotgrid.export(); break; // 'Enter'
2017-11-06 14:10:37 +13:00
2017-11-07 15:41:41 +13:00
case 9 : dotgrid.toggle_fill(); e.preventDefault(); break; // 'tab'
2017-01-04 10:48:08 -07:00
2017-11-07 03:04:47 -08:00
case 38 : dotgrid.mod_move(new Pos(0,-10)); break; // 'up'
case 40 : dotgrid.mod_move(new Pos(0,10)); break; // 'down'
case 37 : dotgrid.mod_move(new Pos(-10,0)); break; // 'left'
case 39 : dotgrid.mod_move(new Pos(10,0)); break; // 'right'
2016-12-31 10:37:10 -07:00
}
2017-11-05 13:59:11 +14:00
dotgrid.draw();
2016-12-31 10:37:10 -07:00
}
}