Files
desktop/lib/window/ipcEvents.ts
rosetta 83f38dc63f 'init'
2026-01-30 05:01:05 +02:00

36 lines
1.1 KiB
TypeScript

import { type BrowserWindow, ipcMain } from 'electron'
import os from 'os'
const handleIPC = (channel: string, handler: (...args: any[]) => void) => {
ipcMain.handle(channel, handler)
}
export const registerWindowIPC = (mainWindow: BrowserWindow) => {
// Hide the menu bar
mainWindow.setMenuBarVisibility(false)
// Register window IPC
handleIPC('init-window', () => {
const { width, height } = mainWindow.getBounds()
const minimizable = mainWindow.isMinimizable()
const maximizable = mainWindow.isMaximizable()
const platform = os.platform()
return { width, height, minimizable, maximizable, platform }
})
handleIPC('is-window-minimizable', () => mainWindow.isMinimizable())
handleIPC('is-window-maximizable', () => mainWindow.isMaximizable())
handleIPC('window-minimize', () => mainWindow.minimize())
handleIPC('window-maximize', () => mainWindow.maximize())
handleIPC('window-close', () => mainWindow.close())
handleIPC('window-maximize-toggle', () => {
if (mainWindow.isMaximized()) {
mainWindow.unmaximize()
} else {
mainWindow.maximize()
}
})
}