Форк Rambox
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.6 KiB

const path = require('path');
const electron = require('electron');
const app = electron.app;
// Module to create tray icon
const Tray = electron.Tray;
const MenuItem = electron.MenuItem;
9 years ago
var appIcon = null;
exports.create = function(win, config) {
9 years ago
if (process.platform === 'darwin' || appIcon) {
return;
}
const icon = process.platform === 'linux' || process.platform === 'darwin' ? 'IconTray.png' : 'Icon.ico';
const iconPath = path.join(__dirname, `../resources/${icon}`);
9 years ago
const toggleWin = () => {
if ( !config.get('keep_in_taskbar_on_close') ) {
if ( win.isVisible() ) {
win.hide();
} else {
config.get('maximized') ? win.maximize() : win.show();
}
9 years ago
} else {
if ( win.isVisible() && !win.isMinimized() ) {
win.minimize();
} else {
config.get('maximized') ? win.maximize() : win.show();
}
}
9 years ago
};
const contextMenu = electron.Menu.buildFromTemplate([
9 years ago
{
label: 'Show/Hide Window'
,click: toggleWin
9 years ago
},
{
type: 'separator'
},
{
label: 'Quit'
,click() {
app.quit();
}
}
]);
9 years ago
appIcon = new Tray(iconPath);
appIcon.setToolTip('Rambox');
appIcon.setContextMenu(contextMenu);
appIcon.on('double-click', () => {
mainWindowState.isMaximized ? win.maximize() : win.show();
});
};
exports.setBadge = shouldDisplayUnread => {
9 years ago
if (process.platform === 'darwin' || !appIcon) {
return;
}
let icon;
if (process.platform === 'linux') {
icon = shouldDisplayUnread ? 'IconTrayUnread.png' : 'IconTray.png';
} else {
icon = shouldDisplayUnread ? 'IconTrayUnread.ico' : 'Icon.ico';
}
const iconPath = path.join(__dirname, `../resources/${icon}`);
9 years ago
appIcon.setImage(iconPath);
};