Add shortcuts to control zoom level

TODO: Keep zoom level when reloading
This commit is contained in:
Yuya Ochiai
2016-05-21 03:06:38 +09:00
parent 0bb56291ed
commit be69b8f502
2 changed files with 35 additions and 8 deletions

View File

@@ -15,9 +15,7 @@ const ListGroupItem = ReactBootstrap.ListGroupItem;
const LoginModal = require('./components/loginModal.jsx');
const electron = require('electron');
const remote = electron.remote;
const ipcRenderer = electron.ipcRenderer;
const {remote, ipcRenderer, webFrame} = require('electron');
const osLocale = require('os-locale');
const fs = require('fs');
@@ -463,7 +461,7 @@ var showUnreadBadgeWindows = function(unreadCount, mentionCount) {
const sendBadge = function(dataURL, description) {
// window.setOverlayIcon() does't work with NativeImage across remote boundaries.
// https://github.com/atom/electron/issues/4011
electron.ipcRenderer.send('update-unread', {
ipcRenderer.send('update-unread', {
overlayDataURL: dataURL,
description: description,
unreadCount: unreadCount,
@@ -491,7 +489,7 @@ var showUnreadBadgeOSX = function(unreadCount, mentionCount) {
remote.app.dock.setBadge('');
}
electron.ipcRenderer.send('update-unread', {
ipcRenderer.send('update-unread', {
unreadCount: unreadCount,
mentionCount: mentionCount
});
@@ -506,7 +504,7 @@ var showUnreadBadgeLinux = function(unreadCount, mentionCount) {
remote.app.dock.setBadge('');
}*/
electron.ipcRenderer.send('update-unread', {
ipcRenderer.send('update-unread', {
unreadCount: unreadCount,
mentionCount: mentionCount
});
@@ -532,3 +530,11 @@ ReactDOM.render(
<MainPage teams={ config.teams } onUnreadCountChange={ showUnreadBadge } />,
document.getElementById('content')
);
ipcRenderer.on('zoom-in', (event, increment) => {
webFrame.setZoomLevel(webFrame.getZoomLevel() + increment);
});
ipcRenderer.on('zoom-reset', (event) => {
webFrame.setZoomLevel(0);
});

View File

@@ -4,7 +4,10 @@ const electron = require('electron');
const Menu = electron.Menu;
var createTemplate = function(mainWindow, config) {
console.log(config);
const separatorItem = {
type: 'separator'
};
var app_name = electron.app.getName();
var first_menu_name = (process.platform === 'darwin') ? app_name : 'File';
var template = [];
@@ -134,7 +137,25 @@ var createTemplate = function(mainWindow, config) {
focusedWindow.toggleDevTools();
}
}
}, ]
}, separatorItem, {
label: 'Actual size',
accelerator: 'CmdOrCtrl+0',
click: () => {
mainWindow.webContents.send('zoom-reset');
}
}, {
label: 'Zoom In',
accelerator: 'CmdOrCtrl+Plus',
click: () => {
mainWindow.webContents.send('zoom-in', 1);
}
}, {
label: 'Zoom Out',
accelerator: 'CmdOrCtrl+-',
click: () => {
mainWindow.webContents.send('zoom-in', -1);
}
}]
});
const window_menu = {