diff --git a/desktop/sources/links/main.css b/desktop/sources/links/main.css index e11db67..9223094 100644 --- a/desktop/sources/links/main.css +++ b/desktop/sources/links/main.css @@ -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; } \ No newline at end of file diff --git a/desktop/sources/scripts/dotgrid.js b/desktop/sources/scripts/dotgrid.js index cda035d..57ea2ca 100644 --- a/desktop/sources/scripts/dotgrid.js +++ b/desktop/sources/scripts/dotgrid.js @@ -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(); diff --git a/desktop/sources/scripts/keyboard.js b/desktop/sources/scripts/keyboard.js index 97d639a..8b38af6 100644 --- a/desktop/sources/scripts/keyboard.js +++ b/desktop/sources/scripts/keyboard.js @@ -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); }; } \ No newline at end of file