aboutsummaryrefslogtreecommitdiffstats
path: root/src/electron/ipc-api
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2017-10-19 11:15:25 +0200
committerLibravatar Stefan Malzner <stefan@adlk.io>2017-10-19 11:19:50 +0200
commitef503a1e29a540c7318efb5f2018efbf00706198 (patch)
tree05930a5d43f45c0e769c9ba256ba82f00d85b6ac /src/electron/ipc-api
parentremove unnecessary platform check (diff)
downloadferdium-app-ef503a1e29a540c7318efb5f2018efbf00706198.tar.gz
ferdium-app-ef503a1e29a540c7318efb5f2018efbf00706198.tar.zst
ferdium-app-ef503a1e29a540c7318efb5f2018efbf00706198.zip
Add option to disable system tray icon
Diffstat (limited to 'src/electron/ipc-api')
-rw-r--r--src/electron/ipc-api/appIndicator.js45
1 files changed, 13 insertions, 32 deletions
diff --git a/src/electron/ipc-api/appIndicator.js b/src/electron/ipc-api/appIndicator.js
index 576234d25..d31819068 100644
--- a/src/electron/ipc-api/appIndicator.js
+++ b/src/electron/ipc-api/appIndicator.js
@@ -1,12 +1,11 @@
1import { app, ipcMain, Tray, Menu } from 'electron'; 1import { app, ipcMain } from 'electron';
2import path from 'path'; 2import path from 'path';
3import { autorun } from 'mobx';
3 4
4const INDICATOR_TRAY_PLAIN = 'tray';
5const INDICATOR_TRAY_UNREAD = 'tray-unread';
6const INDICATOR_TASKBAR = 'taskbar'; 5const INDICATOR_TASKBAR = 'taskbar';
7
8const FILE_EXTENSION = process.platform === 'win32' ? 'ico' : 'png'; 6const FILE_EXTENSION = process.platform === 'win32' ? 'ico' : 'png';
9let trayIcon; 7
8let isTrayIconEnabled;
10 9
11function getAsset(type, asset) { 10function getAsset(type, asset) {
12 return path.join( 11 return path.join(
@@ -15,26 +14,14 @@ function getAsset(type, asset) {
15} 14}
16 15
17export default (params) => { 16export default (params) => {
18 trayIcon = new Tray(getAsset('tray', INDICATOR_TRAY_PLAIN)); 17 autorun(() => {
19 const trayMenuTemplate = [ 18 isTrayIconEnabled = params.settings.get('enableSystemTray');
20 {
21 label: 'Show Franz',
22 click() {
23 params.mainWindow.show();
24 },
25 }, {
26 label: 'Quit Franz',
27 click() {
28 app.quit();
29 },
30 },
31 ];
32
33 const trayMenu = Menu.buildFromTemplate(trayMenuTemplate);
34 trayIcon.setContextMenu(trayMenu);
35 19
36 trayIcon.on('click', () => { 20 if (!isTrayIconEnabled) {
37 params.mainWindow.show(); 21 params.trayIcon.hide();
22 } else if (isTrayIconEnabled) {
23 params.trayIcon.show();
24 }
38 }); 25 });
39 26
40 ipcMain.on('updateAppIndicator', (event, args) => { 27 ipcMain.on('updateAppIndicator', (event, args) => {
@@ -68,13 +55,7 @@ export default (params) => {
68 } 55 }
69 } 56 }
70 57
71 // Update system tray 58 // Update Tray
72 trayIcon.setImage(getAsset('tray', args.indicator !== 0 ? INDICATOR_TRAY_UNREAD : INDICATOR_TRAY_PLAIN)); 59 params.trayIcon.setIndicator(args.indicator);
73
74 if (process.platform === 'darwin') {
75 trayIcon.setPressedImage(
76 getAsset('tray', `${args.indicator !== 0 ? INDICATOR_TRAY_UNREAD : INDICATOR_TRAY_PLAIN}-active`),
77 );
78 }
79 }); 60 });
80}; 61};