-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmenu.js
77 lines (67 loc) · 1.89 KB
/
menu.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
const { app, Menu, shell } = require('electron');
const { autoUpdater } = require('electron-updater');
const log = require('electron-log');
class AppMenu {
constructor(mainWindow) {
this.mainWindow = mainWindow;
this.createMenu();
}
createMenu() {
const menuTemplate = [
{
label: `Launcher Mods v${app.getVersion()}`,
submenu: [
this.createUpdateMenuItem(),
this.createExitMenuItem(),
{ type: 'separator' },
this.createSocialMediaSubmenu()
]
}
];
const menu = Menu.buildFromTemplate(menuTemplate);
Menu.setApplicationMenu(menu);
}
createUpdateMenuItem() {
return {
label: 'Verificar Atualizações',
click: () => {
this.checkForUpdates();
}
};
}
createExitMenuItem() {
return {
label: 'Sair',
click: () => {
app.quit();
this.logAction('Apertou no sair.');
}
};
}
createSocialMediaSubmenu() {
return {
label: 'Redes Sociais',
submenu: [
this.createSocialMediaItem('YouTube', 'https://www.youtube.com/@renildomarcio'),
this.createSocialMediaItem('GitHub', 'https://github.com/psycodeliccircus')
]
};
}
createSocialMediaItem(label, url) {
return {
label,
click: () => {
shell.openExternal(url);
this.logAction(`Apertou no ${label.toLowerCase()}.`);
}
};
}
checkForUpdates() {
autoUpdater.checkForUpdates();
this.logAction('Apertou no autoUpdater.');
}
logAction(message) {
log.log(message);
}
}
module.exports = AppMenu;