Improved keyboard controls

This commit is contained in:
Devine Lu Linvega
2018-02-20 09:20:05 +13:00
parent 49612e1df1
commit d8a2fa4403
3 changed files with 21 additions and 9 deletions

View File

@@ -55,4 +55,5 @@ body { background:var(--background) !important; }
#dotgrid svg.vector #mirror_layer_3 { stroke:var(--f_low) !important; }
#dotgrid #preview { stroke:var(--f_high) !important; }
#dotgrid #cursor { border-color:var(--f_med); }
#dotgrid #cursor.keyboard { border-color:var(--f_high) !Important; }

View File

@@ -162,7 +162,7 @@ function Dotgrid(width,height,grid_x,grid_y,block_x,block_y,thickness = 3,lineca
this.controller.add("default","View","Control Points",() => { dotgrid.guide.toggle_widgets(); },"J");
this.controller.add("default","Mode","Toggle Size",() => { dotgrid.interface.toggle_zoom(); },"CmdOrCtrl+E");
this.controller.add("default","Mode","Keyboard",() => { dotgrid.controller.set("keyboard"); },"CmdOrCtrl+K");
this.controller.add("default","Mode","Keyboard",() => { dotgrid.keyboard.start(); },"CmdOrCtrl+K");
this.controller.add("keyboard","*","About",() => { require('electron').shell.openExternal('https://github.com/hundredrabbits/Dotgrid'); },"CmdOrCtrl+,");
this.controller.add("keyboard","*","Fullscreen",() => { app.toggle_fullscreen(); },"CmdOrCtrl+Enter");
@@ -191,7 +191,7 @@ function Dotgrid(width,height,grid_x,grid_y,block_x,block_y,thickness = 3,lineca
this.controller.add("keyboard","Select","XXYY(8)",() => { dotgrid.keyboard.push(8); },"8");
this.controller.add("keyboard","Select","XXYY(9)",() => { dotgrid.keyboard.push(9); },"9");
this.controller.add("keyboard","Mode","Stop Keyboard Mode",() => { dotgrid.keyboard.exit(); },"Escape");
this.controller.add("keyboard","Mode","Stop Keyboard Mode",() => { dotgrid.keyboard.stop(); },"Escape");
this.controller.commit();

View File

@@ -4,6 +4,19 @@ function Keyboard()
this.selector = {x:0,y:0};
this.start = function()
{
dotgrid.controller.set("keyboard");
this.select({x:10,y:10})
dotgrid.cursor.className = "keyboard";
}
this.stop = function()
{
dotgrid.controller.set();
dotgrid.cursor.className = "";
}
this.select = function(pos)
{
this.selector = {x:pos.x * -dotgrid.grid_width,y:pos.y * dotgrid.grid_height};
@@ -35,7 +48,10 @@ function Keyboard()
this.move = function(x,y)
{
this.selector = {x:this.selector.x+(x*dotgrid.grid_width),y:this.selector.y+(-y*dotgrid.grid_height)}
this.selector = {x:this.selector.x+(x*dotgrid.grid_width),y:this.selector.y+(-y*dotgrid.grid_height)};
this.selector.x = this.selector.x > 0 ? 0 : this.selector.x;
this.selector.y = this.selector.y < 0 ? 0 : this.selector.y;
dotgrid.move_cursor(this.selector)
dotgrid.guide.update();
dotgrid.draw();
@@ -57,11 +73,6 @@ function Keyboard()
dotgrid.update();
}
this.exit = function()
{
dotgrid.controller.set();
}
this.listen = function(e)
{
if(e.key == "ArrowRight"){
@@ -87,6 +98,6 @@ function Keyboard()
}
}
document.onkeyup = function(event){ dotgrid.keyboard.listen(event); };
// document.onkeyup = function(event){ dotgrid.keyboard.listen(event); };
document.onkeydown = function(event){ dotgrid.keyboard.listen(event); };
}