forked from th-ch/youtube-music
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tray.js
71 lines (64 loc) · 1.31 KB
/
tray.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
const path = require("path");
const { Menu, nativeImage, Tray } = require("electron");
const config = require("./config");
const getSongControls = require("./providers/song-controls");
// Prevent tray being garbage collected
let tray;
module.exports.setUpTray = (app, win) => {
if (!config.get("options.tray")) {
tray = undefined;
return;
}
const { playPause, next, previous } = getSongControls(win);
const iconPath = path.join(__dirname, "assets", "youtube-music-tray.png");
let trayIcon = nativeImage.createFromPath(iconPath).resize({
width: 16,
height: 16,
});
tray = new Tray(trayIcon);
tray.setToolTip("Youtube Music");
tray.setIgnoreDoubleClickEvents(true);
tray.on("click", () => {
if (config.get("options.trayClickPlayPause")) {
playPause();
} else {
win.isVisible() ? win.hide() : win.show();
}
});
let template = [
{
label: "Play/Pause",
click: () => {
playPause();
},
},
{
label: "Next",
click: () => {
next();
},
},
{
label: "Previous",
click: () => {
previous();
},
},
{
label: "Show",
click: () => {
win.show();
},
},
{
label: "Restart App",
click: () => {
app.relaunch();
app.quit();
},
},
{ role: "quit" }
];
const trayMenu = Menu.buildFromTemplate(template);
tray.setContextMenu(trayMenu);
};