Skip to content

Commit d5f5c27

Browse files
committed
Adding in a basic menu
1 parent bbc76c3 commit d5f5c27

File tree

3 files changed

+107
-1
lines changed

3 files changed

+107
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ If you feel this tool provides functionality against Guild Wars 2's policy, don'
2121
Install required dependencies
2222

2323
- `npm i` to download the latest
24+
- Copy `.env-example` to `.env`
2425

2526
Build RobotJS (https://github.com/octalmage/robotjs/issues/466#issuecomment-600197990)
2627

electron/main.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
const { app, BrowserWindow, ipcMain } = require('electron');
1+
const { app, BrowserWindow, Menu, ipcMain } = require('electron');
22
const path = require('path');
33
const url = require('url');
44
const Store = require('electron-store');
55
const robot = require('robotjs');
66

77
const { channels } = require('../src/shared/constants');
8+
const { menuTemplate } = require('./menuTemplate');
89

910
robot.setKeyboardDelay(0);
1011

@@ -106,4 +107,7 @@ function createWindow() {
106107
mainWindow.on('closed', function () {
107108
mainWindow = null;
108109
});
110+
111+
const menu = Menu.buildFromTemplate(menuTemplate);
112+
Menu.setApplicationMenu(menu);
109113
}

electron/menuTemplate.js

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
const { app } = require('electron');
2+
3+
const isMac = process.platform === 'darwin';
4+
5+
const template = [
6+
// { role: 'appMenu' }
7+
...(isMac
8+
? [
9+
{
10+
label: app.name,
11+
submenu: [
12+
{ role: 'about' },
13+
{ type: 'separator' },
14+
{ role: 'services' },
15+
{ type: 'separator' },
16+
{ role: 'hide' },
17+
{ role: 'hideothers' },
18+
{ role: 'unhide' },
19+
{ type: 'separator' },
20+
{ role: 'quit' },
21+
],
22+
},
23+
]
24+
: []),
25+
// { role: 'fileMenu' }
26+
{
27+
label: 'File',
28+
submenu: [isMac ? { role: 'close' } : { role: 'quit' }],
29+
},
30+
// { role: 'editMenu' }
31+
{
32+
label: 'Edit',
33+
submenu: [
34+
{ role: 'undo' },
35+
{ role: 'redo' },
36+
{ type: 'separator' },
37+
{ role: 'cut' },
38+
{ role: 'copy' },
39+
{ role: 'paste' },
40+
...(isMac
41+
? [
42+
{ role: 'pasteAndMatchStyle' },
43+
{ role: 'delete' },
44+
{ role: 'selectAll' },
45+
{ type: 'separator' },
46+
{
47+
label: 'Speech',
48+
submenu: [{ role: 'startspeaking' }, { role: 'stopspeaking' }],
49+
},
50+
]
51+
: [{ role: 'delete' }, { type: 'separator' }, { role: 'selectAll' }]),
52+
],
53+
},
54+
// { role: 'viewMenu' }
55+
{
56+
label: 'View',
57+
submenu: [
58+
{ role: 'reload' },
59+
{ role: 'forcereload' },
60+
{ role: 'toggledevtools' },
61+
{ type: 'separator' },
62+
{ role: 'resetzoom' },
63+
{ role: 'zoomin' },
64+
{ role: 'zoomout' },
65+
{ type: 'separator' },
66+
{ role: 'togglefullscreen' },
67+
],
68+
},
69+
// { role: 'windowMenu' }
70+
{
71+
label: 'Window',
72+
submenu: [
73+
{ role: 'minimize' },
74+
{ role: 'zoom' },
75+
...(isMac
76+
? [
77+
{ type: 'separator' },
78+
{ role: 'front' },
79+
{ type: 'separator' },
80+
{ role: 'window' },
81+
]
82+
: [{ role: 'close' }]),
83+
],
84+
},
85+
{
86+
role: 'help',
87+
submenu: [
88+
{
89+
label: 'Learn More',
90+
click: async () => {
91+
const { shell } = require('electron');
92+
await shell.openExternal(
93+
'https://github.com/davidlukerice/midi-to-keypress'
94+
);
95+
},
96+
},
97+
],
98+
},
99+
];
100+
101+
module.exports = { menuTemplate: template };

0 commit comments

Comments
 (0)