20 lines
918 B
JavaScript
20 lines
918 B
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// File operations
|
|
openFile: () => ipcRenderer.invoke('dialog:openFile'),
|
|
readFile: (filePath) => ipcRenderer.invoke('file:read', filePath),
|
|
saveFile: (data) => ipcRenderer.invoke('file:save', data),
|
|
saveFileAs: (data) => ipcRenderer.invoke('file:saveAs', data),
|
|
getCurrentPath: () => ipcRenderer.invoke('file:getCurrentPath'),
|
|
|
|
// Menu events
|
|
onFileOpened: (callback) => ipcRenderer.on('file:opened', (event, data) => callback(data)),
|
|
onMenuSave: (callback) => ipcRenderer.on('menu:save', () => callback()),
|
|
onMenuSaveAs: (callback) => ipcRenderer.on('menu:saveAs', () => callback()),
|
|
onViewModeChange: (callback) => ipcRenderer.on('menu:viewMode', (event, mode) => callback(mode)),
|
|
|
|
// Remove listeners
|
|
removeAllListeners: (channel) => ipcRenderer.removeAllListeners(channel)
|
|
});
|