UNPKG

electron-react-typescript-webpack-2022

Version:

Custom boilerplate for writing Desktop Applications using Electron, React, Webpack, TypeScript in 2022

96 lines (75 loc) 2.29 kB
/** * Copyright (c) 2021, Guasam * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. * Read the LICENSE file for more details. * * @author : guasam * @project : Electron Window * @package : Titlebar IPC (Main Process) */ import { BrowserWindow, ipcMain, shell } from 'electron'; export const registerTitlebarIpc = (mainWindow: BrowserWindow) => { ipcMain.handle('window-minimize', () => { mainWindow.minimize(); }); ipcMain.handle('window-maximize', () => { mainWindow.maximize(); }); ipcMain.handle('window-toggle-maximize', () => { if (mainWindow.isMaximized()) { mainWindow.unmaximize(); } else { mainWindow.maximize(); } }); ipcMain.handle('window-close', () => { mainWindow.close(); }); ipcMain.handle('web-undo', () => { mainWindow.webContents.undo(); }); ipcMain.handle('web-redo', () => { mainWindow.webContents.redo(); }); ipcMain.handle('web-cut', () => { mainWindow.webContents.cut(); }); ipcMain.handle('web-copy', () => { mainWindow.webContents.copy(); }); ipcMain.handle('web-paste', () => { mainWindow.webContents.paste(); }); ipcMain.handle('web-delete', () => { mainWindow.webContents.delete(); }); ipcMain.handle('web-select-all', () => { mainWindow.webContents.selectAll(); }); ipcMain.handle('web-reload', () => { mainWindow.webContents.reload(); }); ipcMain.handle('web-force-reload', () => { mainWindow.webContents.reloadIgnoringCache(); }); ipcMain.handle('web-toggle-devtools', () => { mainWindow.webContents.toggleDevTools(); }); ipcMain.handle('web-actual-size', () => { mainWindow.webContents.setZoomLevel(0); }); ipcMain.handle('web-zoom-in', () => { mainWindow.webContents.setZoomLevel(mainWindow.webContents.zoomLevel + 0.5); }); ipcMain.handle('web-zoom-out', () => { mainWindow.webContents.setZoomLevel(mainWindow.webContents.zoomLevel - 0.5); }); ipcMain.handle('web-toggle-fullscreen', () => { mainWindow.setFullScreen(!mainWindow.fullScreen); }); ipcMain.handle('open-url', (e, url) => { shell.openExternal(url); }); };