-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathindex.js
More file actions
115 lines (100 loc) · 2.65 KB
/
index.js
File metadata and controls
115 lines (100 loc) · 2.65 KB
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
"use strict";
const { app, BrowserWindow, Menu, ipcMain } = require("electron");
const { autoUpdater } = require("electron-updater");
const path = require("path");
let mainWindow, aboutWindow, legacyWindow;
process.env.NODE_ENV = process.env.NODE_ENV || "production";
const isProduction = process.env.NODE_ENV === "production";
function logToRender(msg) {
mainWindow.webContents.send("log", msg);
}
function createWindow() {
const browserOptions = {
width: 500,
height: 625,
minWidth: 500,
minHeight: 625,
frame: !isProduction,
backgroundColor: "#222",
show: false
};
mainWindow = new BrowserWindow(browserOptions);
mainWindow.loadURL("file://" + __dirname + "/public/index.html");
mainWindow.on("close", () => {
mainWindow = null;
});
mainWindow.once("ready-to-show", () => {
if (!isProduction) mainWindow.openDevTools();
mainWindow.show();
});
}
function createAboutWindow() {
const browserOptions = {
width: 485,
height: 175,
backgroundColor: "#222",
show: false,
parent: mainWindow
};
aboutWindow = new BrowserWindow(browserOptions);
aboutWindow.loadURL("file://" + __dirname + "/public/about.html");
aboutWindow.on("close", () => {
aboutWindow = null;
});
aboutWindow.once("ready-to-show", () => {
aboutWindow.show();
});
}
function createLegacyWindow() {
const browserOptions = {
width: 490,
height: 225,
backgroundColor: "#222",
resizable: false,
show: false
};
legacyWindow = new BrowserWindow(browserOptions);
legacyWindow.loadURL("file://" + __dirname + "/public/legacy.html");
legacyWindow.on("close", () => {
legacyWindow = null;
});
legacyWindow.once("ready-to-show", () => {
legacyWindow.show();
});
}
ipcMain.on("open-about", () => {
createAboutWindow();
});
ipcMain.on("open-legacy", () => {
createLegacyWindow();
});
function onReady() {
createWindow();
if (isProduction) autoUpdater.checkForUpdates();
}
app.on("ready", onReady);
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();
}
});
app.on("activate", () => {
if (mainWindow === null) {
createWindow();
}
});
autoUpdater.on("update-available", (ev, info) => {
logToRender("update-available");
mainWindow.webContents.send("UPDATE_AVAILABLE");
});
autoUpdater.on("download-progress", (ev, progressObj) => {
logToRender("download-progress");
mainWindow.webContents.send("DOWNLOAD_PROGRESS", ev);
});
autoUpdater.on("update-downloaded", (ev, info) => {
logToRender("update-downloaded");
mainWindow.webContents.send("UPDATE_READY");
ipcMain.on("ACCEPT_UPDATE", () => {
autoUpdater.quitAndInstall();
});
});