-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
97 lines (87 loc) · 2.16 KB
/
index.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
const electron=require('electron')
const url=require('url')
const path=require('path')
const {app,BrowserWindow,Menu,ipcMain}=electron
process.env.NODE_ENV = 'production'
let mainWindow
let addItemWindow
app.on('ready',()=>{
mainWindow=new BrowserWindow({
webPreferences:{
nodeIntegration:true,
contextIsolation: false,
enableRemoteModule: true
}
})
// Load HTML
mainWindow.loadURL(`file://${__dirname}/mainWindow.html`)
// Close application on main window close
mainWindow.on('close',()=>{
app.quit()
})
// Build menu from template
const mainMenu=Menu.buildFromTemplate(mainMenuTemplate)
Menu.setApplicationMenu(mainMenu)
})
const createAddItemWindow = () => {
addItemWindow=new BrowserWindow({
title:'Add new item',
width:300,
height:200,
webPreferences:{
nodeIntegration:true,
contextIsolation: false,
enableRemoteModule: true
}
})
// Load HTML
addItemWindow.loadURL(`file://${__dirname}/addItemWindow.html`)
}
// Get item:add
ipcMain.on('item:add',(e,item)=>{
mainWindow.webContents.send('item:add',item)
addItemWindow.close()
})
// Menu template
const mainMenuTemplate=[
{
label:'File',
submenu:[
{
label: 'Add an item',
click(){
createAddItemWindow()
}
},
{
label: 'Clear items',
click(){
mainWindow.webContents.send('item:clear')
}
},
{
label: 'Quit',
click(){
app.quit()
}
}
]
}
]
// Add developers tools
if(process.env.NODE_ENV !== 'production') {
mainMenuTemplate.push({
label: 'Developer Tools',
submenu:[
{
label:'Toggle DevTools',
click(item,focusedWindow){
focusedWindow.toggleDevTools()
}
},
{
role:'reload'
}
]
})
}