From 15f733f11c33a38c6e669ad8272700b4df5113ee Mon Sep 17 00:00:00 2001 From: Gediminas Petrikas Date: Sat, 23 Apr 2016 21:34:49 +0300 Subject: [PATCH] Windows Thumbnail Bar * While in the player view, show a play/pause toggle in the thumbnail --- main/ipc.js | 5 +++++ main/menu.js | 5 +++++ main/thumbnail.js | 35 +++++++++++++++++++++++++++++ renderer/main.js | 4 ++++ static/PauseThumbnailBarButton.png | Bin 0 -> 101 bytes static/PlayThumbnailBarButton.png | Bin 0 -> 208 bytes 6 files changed, 49 insertions(+) create mode 100644 main/thumbnail.js create mode 100644 static/PauseThumbnailBarButton.png create mode 100644 static/PlayThumbnailBarButton.png diff --git a/main/ipc.js b/main/ipc.js index b03d03b5..68efb862 100644 --- a/main/ipc.js +++ b/main/ipc.js @@ -15,6 +15,7 @@ var shell = require('./shell') var shortcuts = require('./shortcuts') var vlc = require('./vlc') var windows = require('./windows') +var thumbnail = require('./thumbnail') // Messages from the main process, to be sent once the WebTorrent process starts var messageQueueMainToWebTorrent = [] @@ -68,6 +69,10 @@ function init () { shortcuts.onPlayerOpen() }) + ipc.on('updateThumbnailBar', function (e, isPaused) { + thumbnail.updateThumbarButtons(isPaused) + }) + /** * Power Save Blocker */ diff --git a/main/menu.js b/main/menu.js index a79e0394..61f17417 100644 --- a/main/menu.js +++ b/main/menu.js @@ -16,6 +16,7 @@ var config = require('../config') var dialog = require('./dialog') var shell = require('./shell') var windows = require('./windows') +var thumbnail = require('./thumbnail') var menu @@ -33,6 +34,8 @@ function onPlayerClose () { getMenuItem('Increase Speed').enabled = false getMenuItem('Decrease Speed').enabled = false getMenuItem('Add Subtitles File...').enabled = false + + thumbnail.showPlayerThumbnailBar() } function onPlayerOpen () { @@ -44,6 +47,8 @@ function onPlayerOpen () { getMenuItem('Increase Speed').enabled = true getMenuItem('Decrease Speed').enabled = true getMenuItem('Add Subtitles File...').enabled = true + + thumbnail.hidePlayerThumbnailBar() } function onToggleAlwaysOnTop (flag) { diff --git a/main/thumbnail.js b/main/thumbnail.js new file mode 100644 index 00000000..d3336ed8 --- /dev/null +++ b/main/thumbnail.js @@ -0,0 +1,35 @@ +module.exports = { + showPlayerThumbnailBar, + hidePlayerThumbnailBar, + updateThumbarButtons +} + +var path = require('path') +var config = require('../config') + +var windows = require('./windows') + +// gets called on player open +function showPlayerThumbnailBar () { + updateThumbarButtons(false) +} + +// gets called on player close +function hidePlayerThumbnailBar () { + windows.main.win.setThumbarButtons([]) +} + +function updateThumbarButtons (isPaused) { + var icon = isPaused ? 'PlayThumbnailBarButton.png' : 'PauseThumbnailBarButton.png' + var tooltip = isPaused ? 'Play' : 'Pause' + var buttons = [ + { + tooltip: tooltip, + icon: path.join(config.STATIC_PATH, icon), + click: function () { + windows.main.send('dispatch', 'playPause') + } + } + ] + windows.main.win.setThumbarButtons(buttons) +} diff --git a/renderer/main.js b/renderer/main.js index de0968e2..0f4ad4eb 100644 --- a/renderer/main.js +++ b/renderer/main.js @@ -372,14 +372,18 @@ function pause () { function playPause () { if (state.location.url() !== 'player') return + if (state.playing.isPaused) { play() } else { pause() } + // force rerendering if window is hidden, // in order to bypass `raf` and play/pause media immediately if (!state.window.isVisible) render(state) + + ipcRenderer.send('updateThumbnailBar', state.playing.isPaused) } function jumpToTime (time) { diff --git a/static/PauseThumbnailBarButton.png b/static/PauseThumbnailBarButton.png new file mode 100644 index 0000000000000000000000000000000000000000..74068eae0d0121441c8c15b9437c91b3faa012df GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}t9Zwg>kP61PXBGJv7&w>>|NYOr vpwSdtHCcG=3ze_;ezP+$lmnFk!KFziX4m!waNe;`1aUoG{an^LB{Ts5hM^k< literal 0 HcmV?d00001 diff --git a/static/PlayThumbnailBarButton.png b/static/PlayThumbnailBarButton.png new file mode 100644 index 0000000000000000000000000000000000000000..f208795fccb514a4b7b698bbf9b3550c5cbed580 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D>7Fi*Ar*{ory2?#3J_p5=S^i< zz+kd~N%R3zNCUUe5oW#@nU_^~t_E*7>YF#eLHFOe+F8CAO!U94SW~mpXhze2wZ3%; zsn5=x6HLkX>r;rXFtTcTbNHrEN@uu`N}TV63RlNRS6Mp4MZlcZTw-!PuJV=7($cI7 z4g8O`9<(o8dakrd=SQlVM