|
1 | | -const { app, BrowserWindow, globalShortcut, ipcMain, systemPreferences, Tray } = require('electron') |
| 1 | +const { app, BrowserWindow, globalShortcut, ipcMain, systemPreferences, Tray, Menu } = require('electron') |
2 | 2 | const notifier = require('node-notifier') |
3 | 3 | const path = require('path') |
4 | 4 | const windowStateKeeper = require('electron-window-state') |
@@ -47,27 +47,45 @@ function createWindow () { |
47 | 47 |
|
48 | 48 | function globalShortcuts () { |
49 | 49 | // Play,Pause |
50 | | - globalShortcut.register('MediaPlayPause', () => { |
51 | | - console.log('play/pause') |
52 | | - mainWindow.webContents.executeJavaScript(`document.querySelector('.play-pause-button').click()`) |
53 | | - }) |
| 50 | + globalShortcut.register('MediaPlayPause', mediaPlayPause) |
54 | 51 | // Next |
55 | | - globalShortcut.register('MediaNextTrack', () => { |
56 | | - mainWindow.webContents.executeJavaScript(`document.querySelector('.next-button').click()`) |
57 | | - }) |
| 52 | + globalShortcut.register('MediaNextTrack', mediaNextTrack) |
58 | 53 | // Previous |
59 | | - globalShortcut.register('MediaPreviousTrack', () => { |
60 | | - mainWindow.webContents.executeJavaScript(`document.querySelector('.previous-button').click()`) |
61 | | - }) |
| 54 | + globalShortcut.register('MediaPreviousTrack', mediaPreviousTrack) |
| 55 | +} |
| 56 | + |
| 57 | +function mediaPlayPause () { |
| 58 | + console.info('play/pause') |
| 59 | + mainWindow.webContents.executeJavaScript(`document.querySelector('.play-pause-button').click()`) |
| 60 | +} |
| 61 | + |
| 62 | +function mediaNextTrack () { |
| 63 | + console.info('play next track') |
| 64 | + mainWindow.webContents.executeJavaScript(`document.querySelector('.next-button').click()`) |
| 65 | +} |
| 66 | + |
| 67 | +function mediaPreviousTrack () { |
| 68 | + console.info('play previous track') |
| 69 | + mainWindow.webContents.executeJavaScript(`document.querySelector('.previous-button').click()`) |
62 | 70 | } |
63 | 71 |
|
64 | 72 | function trayIcon () { |
65 | 73 | tray = new Tray(path.join(__dirname, `assets/icons/menu-standard-${trayTheme}.png`)) |
66 | 74 | tray.setToolTip('MusicTube Player') |
67 | | - tray.on('click', () => { |
68 | | - if (mainWindow.isMinimized()) mainWindow.restore() |
69 | | - mainWindow.show() |
70 | | - }) |
| 75 | + |
| 76 | + const contextMenu = Menu.buildFromTemplate([ |
| 77 | + { label: 'Open App', |
| 78 | + type: 'normal', |
| 79 | + click: () => { |
| 80 | + if (mainWindow.isMinimized()) mainWindow.restore() |
| 81 | + mainWindow.show() |
| 82 | + } |
| 83 | + }, |
| 84 | + { label: 'Play/Pause', type: 'normal', click: mediaPlayPause }, |
| 85 | + { label: 'Next', type: 'normal', click: mediaNextTrack }, |
| 86 | + { label: 'Previous', type: 'normal', click: mediaPreviousTrack } |
| 87 | + ]) |
| 88 | + tray.setContextMenu(contextMenu) |
71 | 89 | } |
72 | 90 |
|
73 | 91 | function playStatus () { |
|
0 commit comments