-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
47 lines (38 loc) · 2.21 KB
/
preload.js
File metadata and controls
47 lines (38 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
const { contextBridge, ipcRenderer } = require('electron');
// Expose protected methods that allow the renderer process to use
// the ipcRenderer without exposing the entire object
contextBridge.exposeInMainWorld('electronAPI', {
// Settings
getSettings: () => ipcRenderer.invoke('get-settings'),
saveSettings: (settings) => ipcRenderer.invoke('save-settings', settings),
selectDirectory: () => ipcRenderer.invoke('select-directory'),
// Area selection
openSelector: () => ipcRenderer.invoke('open-selector'),
closeSelector: () => ipcRenderer.invoke('close-selector'),
areaSelected: (bounds) => ipcRenderer.invoke('area-selected', bounds),
onAreaSelected: (callback) => ipcRenderer.on('area-selected', (event, bounds) => callback(bounds)),
// Recording
startRecording: (bounds) => ipcRenderer.invoke('start-recording', bounds),
stopRecording: () => ipcRenderer.invoke('stop-recording'),
pauseRecording: () => ipcRenderer.invoke('pause-recording'),
resumeRecording: () => ipcRenderer.invoke('resume-recording'),
// Theme
getTheme: () => ipcRenderer.invoke('get-theme'),
onThemeChanged: (callback) => ipcRenderer.on('theme-changed', (event, theme) => callback(theme)),
// Language
onLanguageChanged: (callback) => ipcRenderer.on('language-changed', (event, language) => callback(language)),
// Compact mode
onCompactModeChanged: (callback) => ipcRenderer.on('compact-mode-changed', (event, isCompact) => callback(isCompact)),
// Menu actions
onMenuSelectArea: (callback) => ipcRenderer.on('menu-select-area', callback),
// Custom menu bar actions
menuToggleCompactMode: () => ipcRenderer.invoke('menu-toggle-compact-mode'),
menuChangeLanguage: (language) => ipcRenderer.invoke('menu-change-language', language),
menuOpenOutputFolder: () => ipcRenderer.invoke('menu-open-output-folder'),
menuMinimizeWindow: () => ipcRenderer.invoke('menu-minimize-window'),
menuCloseWindow: () => ipcRenderer.invoke('menu-close-window'),
getCurrentLanguage: () => ipcRenderer.invoke('get-current-language'),
getCompactMode: () => ipcRenderer.invoke('get-compact-mode'),
// Recording status updates
onRecordingStatus: (callback) => ipcRenderer.on('recording-status', (event, status) => callback(status))
});