From 876e52bb01771104315c36c7347e0fe26468c74f Mon Sep 17 00:00:00 2001 From: TC Date: Sun, 12 Apr 2020 18:58:22 +0200 Subject: [PATCH] Tray lib --- tray.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tray.js diff --git a/tray.js b/tray.js new file mode 100644 index 00000000..d36c0911 --- /dev/null +++ b/tray.js @@ -0,0 +1,69 @@ +const path = require("path"); + +const { Menu, nativeImage, Tray } = require("electron"); + +const { mainMenuTemplate } = require("./menu"); +const { isTrayEnabled } = require("./store"); +const { clickInYoutubeMusic } = require("./utils/youtube-music"); + +// Prevent tray being garbage collected +let tray; + +module.exports.setUpTray = (app, win) => { + if (!isTrayEnabled()) { + tray = undefined; + return; + } + + 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"); + + const trayMenu = Menu.buildFromTemplate([ + { + label: "Play/Pause", + click: () => { + clickInYoutubeMusic( + win, + "#left-controls > div > paper-icon-button.play-pause-button.style-scope.ytmusic-player-bar" + ); + }, + }, + { + label: "Next", + click: () => { + clickInYoutubeMusic( + win, + "#left-controls > div > paper-icon-button.next-button.style-scope.ytmusic-player-bar" + ); + }, + }, + { + label: "Previous", + click: () => { + clickInYoutubeMusic( + win, + "#left-controls > div > paper-icon-button.previous-button.style-scope.ytmusic-player-bar" + ); + }, + }, + { + label: "Show", + click: () => { + win.show(); + }, + }, + ...mainMenuTemplate, + { + label: "Quit", + click: () => { + app.quit(); + }, + }, + ]); + tray.setContextMenu(trayMenu); +};