diff --git a/plugins/taskbar-mediacontrol/assets/backward.png b/plugins/taskbar-mediacontrol/assets/backward.png new file mode 100644 index 00000000..3f1a27f8 Binary files /dev/null and b/plugins/taskbar-mediacontrol/assets/backward.png differ diff --git a/plugins/taskbar-mediacontrol/assets/forward.png b/plugins/taskbar-mediacontrol/assets/forward.png new file mode 100644 index 00000000..5a7ff54e Binary files /dev/null and b/plugins/taskbar-mediacontrol/assets/forward.png differ diff --git a/plugins/taskbar-mediacontrol/assets/pause.png b/plugins/taskbar-mediacontrol/assets/pause.png new file mode 100644 index 00000000..9268aef1 Binary files /dev/null and b/plugins/taskbar-mediacontrol/assets/pause.png differ diff --git a/plugins/taskbar-mediacontrol/assets/play.png b/plugins/taskbar-mediacontrol/assets/play.png new file mode 100644 index 00000000..27d9ad15 Binary files /dev/null and b/plugins/taskbar-mediacontrol/assets/play.png differ diff --git a/plugins/taskbar-mediacontrol/back.js b/plugins/taskbar-mediacontrol/back.js new file mode 100644 index 00000000..b4d7dd3c --- /dev/null +++ b/plugins/taskbar-mediacontrol/back.js @@ -0,0 +1,58 @@ +const getSongControls = require('../../providers/song-controls'); +const getSongInfo = require('../../providers/song-info'); +const path = require('path'); + +module.exports = win => { + win.hide = function () { + win.minimize(); + win.setSkipTaskbar(true); + }; + + const show = win.show; + win.show = function () { + win.restore(); + win.focus(); + win.setSkipTaskbar(false); + show.apply(win); + }; + + win.isVisible = function () { + return !win.isMinimized(); + }; + + const registerCallback = getSongInfo(win); + const {playPause, next, previous} = getSongControls(win); + + // If the page is ready, register the callback + win.on('ready-to-show', () => { + registerCallback(songInfo => { + // Wait for song to start before setting thumbar + if (songInfo.title === '') { + return; + } + + // Win32 require full rewrite of components + win.setThumbarButtons([ + { + tooltip: 'Previous', + icon: get('backward.png'), + click() {previous(win.webContents);} + }, { + tooltip: 'Play/Pause', + // Update icon based on play state + icon: songInfo.isPaused ? get('play.png') : get('pause.png'), + click() {playPause(win.webContents);} + }, { + tooltip: 'Next', + icon: get('forward.png'), + click() {next(win.webContents);} + } + ]); + }); + }); +}; + +// Util +function get(file) { + return path.join(__dirname,"assets", file); +}