forked from hamilton-lima/cap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
85 lines (69 loc) · 1.77 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
const { app, Menu, Tray, BrowserWindow } = require("electron");
const { globalShortcut } = require("electron");
const path = require("path");
const package = require( path.join(__dirname, "package.json") );
let mainWindow;
let tray = null;
// TODO: move to a class
let shortcut = "Ctrl+PrintScreen";
function createWindow() {
mainWindow = new BrowserWindow({ width: 800, height: 600, show: false });
mainWindow.loadFile("index.html");
mainWindow.on("closed", function() {
mainWindow = null;
});
}
function createTray() {
var trayiconName = path.join(__dirname, "cap-white.png");
if (process.platform == "darwin") {
trayiconName = path.join(__dirname, "cap.png");
}
console.log("Creating tray icon " + trayiconName);
tray = new Tray(trayiconName);
const contextMenu = Menu.buildFromTemplate([
{
label: "CAP screen capture " + package.version,
type: "normal"
},
{
label: "Capture " + shortcut,
click() {
console.log("click capture");
capture();
}
},
{
label: "Exit",
click() {
app.exit();
}
}
]);
tray.setToolTip("CAP screen capture");
tray.setContextMenu(contextMenu);
}
function createGlobalShortcut() {
if (process.platform == "darwin") {
shortcut = "CommandOrControl+Shift+5"
}
globalShortcut.register(shortcut, () => {
console.log("shortcut pressed: " + shortcut);
capture();
});
}
function capture() {
mainWindow.webContents.send("capture", "foo");
}
app.on("ready", createWindow);
app.on("ready", createGlobalShortcut);
app.on("ready", createTray);
app.on("window-all-closed", function() {
if (process.platform !== "darwin") {
app.quit();
}
});
app.on("activate", function() {
if (mainWindow === null) {
createWindow();
}
});