24 lines
940 B
JavaScript
24 lines
940 B
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
// Expose protected methods that allow the renderer process to use
|
|
// the ipcRenderer without exposing the entire object
|
|
contextBridge.exposeInMainWorld('electron', {
|
|
// Window control methods
|
|
windowControl: {
|
|
minimize: () => ipcRenderer.invoke('minimize-window'),
|
|
maximize: () => ipcRenderer.invoke('maximize-window'),
|
|
close: () => ipcRenderer.invoke('close-window'),
|
|
},
|
|
// Window state listeners
|
|
windowState: {
|
|
onMaximized: (callback) => ipcRenderer.on('window-maximized', callback),
|
|
onUnmaximized: (callback) => ipcRenderer.on('window-unmaximized', callback),
|
|
removeMaximizedListener: () => ipcRenderer.removeAllListeners('window-maximized'),
|
|
removeUnmaximizedListener: () => ipcRenderer.removeAllListeners('window-unmaximized'),
|
|
},
|
|
// App info
|
|
appInfo: {
|
|
isElectron: true,
|
|
version: process.env.npm_package_version,
|
|
}
|
|
});
|