diff --git a/main.js b/main.js index e0fc2ea..644f345 100644 --- a/main.js +++ b/main.js @@ -6,42 +6,26 @@ let win app.on('ready', () => { - win = new BrowserWindow({width: 400, height: 420, minWidth: 400, minHeight: 400, maxWidth: 700, maxHeight: 720, backgroundColor:"#000", frame:false, autoHideMenuBar: true, icon: __dirname + '/icon.ico'}) + win = new BrowserWindow({width: 400, height: 420, minWidth: 400, minHeight: 400, backgroundColor:"#000", frame:false, autoHideMenuBar: true, icon: __dirname + '/icon.ico'}) win.loadURL(`file://${__dirname}/sources/index.html`) let is_shown = true; - if (process.platform === 'darwin') { - Menu.setApplicationMenu(Menu.buildFromTemplate([ - { - label: 'File', - submenu: [ - { label: 'Quit', accelerator: 'CmdOrCtrl+Q', click: function() { force_quit=true; app.exit(); }} - ] - }, - { - label: 'Edit', - submenu: [ - { role: 'undo' }, - { role: 'redo' }, - { role: 'cut' }, - { role: 'copy' }, - { role: 'paste' }, - { role: 'delete' }, - { role: 'selectall' } - ] - }, - { - label: 'Window', - submenu : [ - { label: 'Hide', accelerator: 'CmdOrCtrl+H',click: () => { if(is_shown){ win.hide(); } else{ win.show(); }}}, - { label: 'Minimize', accelerator: 'CmdOrCtrl+M',click: () => { win.minimize(); }}, - { label: 'Fullscreen', accelerator: 'CmdOrCtrl+Enter',click: () => { win.setFullScreen(win.isFullScreen() ? false : true); }} - ] - } - ])); - } + Menu.setApplicationMenu(Menu.buildFromTemplate([ + { label: 'File', submenu: [ + { label: 'Inspector', accelerator: 'CmdOrCtrl+.', click: () => { win.webContents.openDevTools(); }}, + { label: 'Guide', accelerator: 'CmdOrCtrl+,', click: () => { shell.openExternal('https://github.com/hundredrabbits/Dotgrid'); }}, + { label: 'Quit', accelerator: 'CmdOrCtrl+Q', click: () => { force_quit=true; app.exit(); }} + ] + }, + { label: 'Window', submenu : [ + { label: 'Hide', accelerator: 'CmdOrCtrl+H',click: () => { if(is_shown){ win.hide(); } else{ win.show(); }}}, + { label: 'Minimize', accelerator: 'CmdOrCtrl+M',click: () => { win.minimize(); }}, + { label: 'Fullscreen', accelerator: 'CmdOrCtrl+Enter',click: () => { win.setFullScreen(win.isFullScreen() ? false : true); }} + ] + } + ])); win.on('closed', () => { win = null @@ -55,8 +39,6 @@ app.on('ready', () => win.on('show',function() { is_shown = true; }) - // Open the DevTools. - // win.webContents.openDevTools() }) app.on('window-all-closed', () => diff --git a/sources/scripts/dotgrid.js b/sources/scripts/dotgrid.js index b0cb746..1802aff 100644 --- a/sources/scripts/dotgrid.js +++ b/sources/scripts/dotgrid.js @@ -52,6 +52,8 @@ function Dotgrid(width,height,grid_x,grid_y,block_x,block_y,thickness = 3,lineca this.install = function() { + document.body.appendChild(this.theme.el); + document.getElementById("app").appendChild(this.wrapper); this.wrapper.appendChild(this.element); this.element.appendChild(this.guide.el); @@ -245,22 +247,22 @@ function Dotgrid(width,height,grid_x,grid_y,block_x,block_y,thickness = 3,lineca this.preview = function(operation) { if(from && to && operation == "line"){ - var d = new Path_Line(from.mirror(),to.mirror(),end.mirror()).to_segment(); + var d = new Path_Line(from.mirror(),to.mirror(),end ? end.mirror() : null).to_segment(); this.preview_el.innerHTML = "" return; } else if(from && to && operation == "arc_c"){ - var d = new Path_Arc(from.mirror(),to.mirror(),"0,1",end.mirror()).to_segment(); + var d = new Path_Arc(from.mirror(),to.mirror(),"0,1",end ? end.mirror() : null).to_segment(); this.preview_el.innerHTML = "" return; } else if(from && to && operation == "arc_r"){ - var d = new Path_Arc(from.mirror(),to.mirror(),"0,0",end.mirror()).to_segment(); + var d = new Path_Arc(from.mirror(),to.mirror(),"0,0",end ? end.mirror() : null).to_segment(); this.preview_el.innerHTML = "" return; } else if(from && to && operation == "bezier"){ - var d = new Path_Bezier(from.mirror(),to.mirror(),end.mirror()).to_segment(); + var d = new Path_Bezier(from.mirror(),to.mirror(),end ? end.mirror() : null).to_segment(); this.preview_el.innerHTML = "" return; } diff --git a/sources/scripts/guide.js b/sources/scripts/guide.js index eed6736..f67105a 100644 --- a/sources/scripts/guide.js +++ b/sources/scripts/guide.js @@ -119,7 +119,7 @@ function Guide() ctx.lineTo((to.x * -2)+20,(to.y * 2)+20); ctx.lineCap="round"; ctx.lineWidth = 5; - ctx.strokeStyle = dotgrid.theme.active.f_high; + ctx.strokeStyle = dotgrid.theme.active.f_inv; ctx.stroke(); ctx.closePath(); } diff --git a/sources/scripts/path_bezier.js b/sources/scripts/path_bezier.js index 81546b2..b10923e 100644 --- a/sources/scripts/path_bezier.js +++ b/sources/scripts/path_bezier.js @@ -10,6 +10,7 @@ function Path_Bezier(from,to,end) this.to_segment = function(prev) { var html = "" + if(!this.end){ return ""; } if(!prev || (!prev.to && !prev.end)){ html += "M"+this.from.scale(dotgrid.scale)+" "; diff --git a/sources/scripts/theme.js b/sources/scripts/theme.js index eb36f59..222229a 100644 --- a/sources/scripts/theme.js +++ b/sources/scripts/theme.js @@ -3,20 +3,17 @@ function Theme() this.el = document.createElement("style"); this.active = null; - this.collection = {}; - this.collection.blanc = { background:"#eee",f_high:"#111",f_med:"#999",f_low:"#ddd",f_inv:"#fff",f_inv:"#000",b_high:"#000",b_med:"#999",b_low:"#ddd",b_inv:"#999",b_inv:"#72dec2" }; + this.default = { background: "#222", f_high: "#fff", f_med: "#777", f_low: "#444", f_inv: "#affec7", b_high: "#000", b_med: "#affec7", b_low: "#000", b_inv: "#affec7" } this.start = function() { - document.body.appendChild(this.el); - if(localStorage.theme && is_json(localStorage.theme)){ console.log("Theme","Found in localStorage") this.install(JSON.parse(localStorage.theme)); } else{ console.log("Theme","Creating new") - this.install(this.collection.blanc); + this.install(this.default); } } @@ -31,9 +28,6 @@ function Theme() if(is_json(theme_str)){ this.install(JSON.parse(theme_str)); } - else if(this.collection[theme_str]){ - this.install(this.collection[theme_str]); - } console.log("Theme","Loaded"); } @@ -70,7 +64,7 @@ function Theme() this.reset = function() { console.log("Theme","reset"); - this.install(this.collection.blanc); + this.install(this.default); } function is_json(text)