-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
138 lines (101 loc) · 2.45 KB
/
main.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
const electron = require('electron');
const url = require('url');
const path = require('path');
const {app, BrowserWindow, Menu, ipcMain} = electron;
// Set environment
//process.env.NODE_ENV = 'production';
let mainWindow;
let addWindow;
// Listen for the app to be ready
app.on('ready', function(){
// Create new window
mainWindow = new BrowserWindow({});
// Load the html file into the window
mainWindow.loadURL(url.format({
pathname: path.join(__dirname, 'mainWindow.html'),
protocol: 'file:',
slashes: true
}));
// Quit app when closed
mainWindow.on('closed', function() {
app.quit();
});
// Build the menu from the template
const mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
// Insert Menu
Menu.setApplicationMenu(mainMenu);
});
// Handle create window
function createAddWindow() {
// Create new window
addWindow = new BrowserWindow({
windth: 300,
height: 200,
title: 'Add Shopping List Item'
});
// Load the html file into the window
addWindow.loadURL(url.format({
pathname: path.join(__dirname, 'addWindow.html'),
protocol: 'file:',
slashes: true
}));
// Garbage collection handleEvent
addWindow.on('close', function(){
addWindow = null;
});
}
// Catch item add
ipcMain.on('item:add', function(e, item) {
//console.log(item);
mainWindow.webContents.send('item:add', item);
addWindow.close();
});
// Create menu template
const mainMenuTemplate = [
{
label: 'File',
submenu: [
{
label: 'Add Item',
click() {
createAddWindow();
}
},
{
label: 'Clear Items',
click() {
mainWindow.webContents.send('item:clear');
}
},
{
label: 'Quit',
accelerator: process.platform == 'darwin' ? 'Command+Q' : 'Ctrl+Q',
click() {
app.quit();
}
}
]
}
];
// If mac, add empty object to menu
if (process.platform == 'darwin') {
mainMenuTemplate.unshift({});
}
// Add dev tool items if not in production
if (process.env.NODE_ENV !== 'production') {
mainMenuTemplate.push({
label: 'Developer Tools',
submenu: [
{
label: 'Toggle DevTools',
click(item, focusedWindow) {
focusedWindow.toggleDevTools();
},
accelerator: process.platform == 'darwin' ? 'Command+I' : 'Ctrl+I'
},
{
role: 'reload'
}
]
});
}