|
1 | | -import { ipcRenderer, contextBridge } from 'electron'; |
| 1 | +import { ipcRenderer, contextBridge } from "electron"; |
2 | 2 |
|
3 | 3 | // --------- Expose some API to the Renderer process --------- |
4 | | -contextBridge.exposeInMainWorld('electron', { |
5 | | - |
6 | | - createNewWindow: (route: string, width: number, height: number, frame: boolean) => { |
7 | | - ipcRenderer.send('create-new-window', route, width, height, frame); |
| 4 | +contextBridge.exposeInMainWorld("electron", { |
| 5 | + createNewWindow: ( |
| 6 | + route: string, |
| 7 | + width: number, |
| 8 | + height: number, |
| 9 | + frame: boolean |
| 10 | + ) => { |
| 11 | + ipcRenderer.send("create-new-window", route, width, height, frame); |
8 | 12 | }, |
9 | 13 |
|
10 | 14 | // Resize the window |
11 | | - resizeWindow: (width: number, height: number) => ipcRenderer.send('resize-window', width, height), |
12 | | - |
| 15 | + resizeWindow: (width: number, height: number) => |
| 16 | + ipcRenderer.send("resize-window", width, height), |
| 17 | + |
13 | 18 | // Control window frame visibility |
14 | | - setWindowFrameVisible: (visible: boolean) => ipcRenderer.send('set-window-frame-visible', visible), |
| 19 | + setWindowFrameVisible: (visible: boolean) => |
| 20 | + ipcRenderer.send("set-window-frame-visible", visible), |
15 | 21 |
|
16 | 22 | // Set window title |
17 | | - setWindowTitle: (title: string) => ipcRenderer.send('set-window-title', title), |
| 23 | + setWindowTitle: (title: string) => |
| 24 | + ipcRenderer.send("set-window-title", title), |
18 | 25 |
|
19 | 26 | // 设置窗口居中 |
20 | | - setWindowCentral: () => ipcRenderer.send('set-window-central'), |
| 27 | + setWindowCentral: () => ipcRenderer.send("set-window-central"), |
21 | 28 |
|
22 | 29 | // 设置窗口是否置顶 |
23 | | - setWindowAlwaysOnTop: (alwaysOnTop: boolean) => ipcRenderer.send('set-window-always-on-top', alwaysOnTop), |
| 30 | + setWindowAlwaysOnTop: (alwaysOnTop: boolean) => |
| 31 | + ipcRenderer.send("set-window-always-on-top", alwaysOnTop), |
24 | 32 |
|
25 | 33 | // 设置窗口是否可见 |
26 | | - setWindowVisible: (visible: boolean) => ipcRenderer.send('set-window-visible', visible), |
| 34 | + setWindowVisible: (visible: boolean) => |
| 35 | + ipcRenderer.send("set-window-visible", visible), |
27 | 36 |
|
28 | 37 | // 设置窗口菜单栏是否可见 |
29 | | - setWindowMenuBarVisible: (visible: boolean) => ipcRenderer.send('set-window-menu-bar-visible', visible), |
| 38 | + setWindowMenuBarVisible: (visible: boolean) => |
| 39 | + ipcRenderer.send("set-window-menu-bar-visible", visible), |
30 | 40 |
|
31 | 41 | // 设置窗口是否可改变大小 |
32 | | - setWindowResizable: (resizable: boolean) => ipcRenderer.send('set-window-resizable', resizable), |
| 42 | + setWindowResizable: (resizable: boolean) => |
| 43 | + ipcRenderer.send("set-window-resizable", resizable), |
33 | 44 |
|
34 | 45 | // 设置窗口是否可移动 |
35 | | - setWindowMovable: (movable: boolean) => ipcRenderer.send('set-window-movable', movable), |
| 46 | + setWindowMovable: (movable: boolean) => |
| 47 | + ipcRenderer.send("set-window-movable", movable), |
36 | 48 |
|
37 | 49 | // 设置窗口是否可最小化 |
38 | | - setWindowMinimizable: (minimizable: boolean) => ipcRenderer.send('set-window-minimizable', minimizable), |
| 50 | + setWindowMinimizable: (minimizable: boolean) => |
| 51 | + ipcRenderer.send("set-window-minimizable", minimizable), |
39 | 52 |
|
40 | 53 | // 设置窗口是否可最大化 |
41 | | - setWindowMaximizable: (maximizable: boolean) => ipcRenderer.send('set-window-maximizable', maximizable), |
| 54 | + setWindowMaximizable: (maximizable: boolean) => |
| 55 | + ipcRenderer.send("set-window-maximizable", maximizable), |
42 | 56 |
|
43 | 57 | // 设置窗口是否全屏 |
44 | | - setWindowFullScreen: (fullScreen: boolean) => ipcRenderer.send('set-window-full-screen', fullScreen), |
| 58 | + setWindowFullScreen: (fullScreen: boolean) => |
| 59 | + ipcRenderer.send("set-window-full-screen", fullScreen), |
45 | 60 |
|
46 | 61 | // 设置窗口背景颜色 |
47 | | - setWindowBackgroundColor: (color: string) => ipcRenderer.send('set-window-background-color', color), |
| 62 | + setWindowBackgroundColor: (color: string) => |
| 63 | + ipcRenderer.send("set-window-background-color", color), |
48 | 64 |
|
49 | 65 | // 设置窗口图标 |
50 | | - setWindowIcon: (iconPath: string) => ipcRenderer.send('set-window-icon', iconPath), |
| 66 | + setWindowIcon: (iconPath: string) => |
| 67 | + ipcRenderer.send("set-window-icon", iconPath), |
51 | 68 |
|
52 | 69 | // 设置窗口是否在所有工作区可见 |
53 | | - setWindowVisibleOnAllWorkspaces: (visible: boolean) => ipcRenderer.send('set-window-visible-on-all-workspaces', visible), |
| 70 | + setWindowVisibleOnAllWorkspaces: (visible: boolean) => |
| 71 | + ipcRenderer.send("set-window-visible-on-all-workspaces", visible), |
54 | 72 |
|
55 | 73 | // 设置窗口大小 |
56 | | - setWindowSize: (width: number, height: number) => ipcRenderer.send('set-window-size', width, height), |
| 74 | + setWindowSize: (width: number, height: number) => |
| 75 | + ipcRenderer.send("set-window-size", width, height), |
57 | 76 |
|
58 | 77 | // 设置窗口位置 |
59 | | - setWindowPosition: (x: number, y: number) => ipcRenderer.send('set-window-position', x, y), |
| 78 | + setWindowPosition: (x: number, y: number) => |
| 79 | + ipcRenderer.send("set-window-position", x, y), |
60 | 80 |
|
61 | 81 | // 设置窗口透明度 |
62 | | - setWindowOpacity: (opacity: number) => ipcRenderer.send('set-window-opacity', opacity), |
| 82 | + setWindowOpacity: (opacity: number) => |
| 83 | + ipcRenderer.send("set-window-opacity", opacity), |
63 | 84 |
|
64 | 85 | // 设置窗口是否在任务栏中显示 |
65 | | - setWindowInTaskbar: (inTaskbar: boolean) => ipcRenderer.send('set-window-in-taskbar', inTaskbar), |
| 86 | + setWindowInTaskbar: (inTaskbar: boolean) => |
| 87 | + ipcRenderer.send("set-window-in-taskbar", inTaskbar), |
66 | 88 |
|
67 | 89 | // 窗口操作 |
68 | | - minimizeWindow: () => ipcRenderer.send('minimize-window'), |
69 | | - maximizeWindow: () => ipcRenderer.send('maximize-window'), |
70 | | - restoreWindow: () => ipcRenderer.send('restore-window'), |
71 | | - closeWindow: () => ipcRenderer.send('close-window'), |
72 | | - destroyWindow: () => ipcRenderer.send('destroy-window'), |
| 90 | + minimizeWindow: () => ipcRenderer.send("minimize-window"), |
| 91 | + maximizeWindow: () => ipcRenderer.send("maximize-window"), |
| 92 | + restoreWindow: () => ipcRenderer.send("restore-window"), |
| 93 | + closeWindow: () => ipcRenderer.send("close-window"), |
| 94 | + destroyWindow: () => ipcRenderer.send("destroy-window"), |
73 | 95 |
|
74 | 96 | // 获取窗口属性 |
75 | | - getWindowPosition: () => ipcRenderer.invoke('get-window-position'), |
76 | | - getWindowSize: () => ipcRenderer.invoke('get-window-size'), |
77 | | - getWindowTitle: () => ipcRenderer.invoke('get-window-title'), |
78 | | - getWindowBackgroundColor: () => ipcRenderer.invoke('get-window-background-color'), |
79 | | - getWindowOpacity: () => ipcRenderer.invoke('get-window-opacity'), |
80 | | - isWindowVisible: () => ipcRenderer.invoke('is-window-visible'), |
81 | | - isWindowMaximized: () => ipcRenderer.invoke('is-window-maximized'), |
82 | | - isWindowMinimized: () => ipcRenderer.invoke('is-window-minimized'), |
83 | | - isWindowFullScreen: () => ipcRenderer.invoke('is-window-full-screen'), |
84 | | - isWindowResizable: () => ipcRenderer.invoke('is-window-resizable'), |
85 | | - isWindowVisibleOnAllWorkspaces: () => ipcRenderer.invoke('is-window-visible-on-all-workspaces'), |
86 | | - isWindowAlwaysOnTop: () => ipcRenderer.invoke('is-window-always-on-top'), |
87 | | - isWindowMovable: () => ipcRenderer.invoke('is-window-movable'), |
88 | | - isWindowMinimizable: () => ipcRenderer.invoke('is-window-minimizable'), |
89 | | - isWindowMaximizable: () => ipcRenderer.invoke('is-window-maximizable'), |
90 | | - isWindowClosable: () => ipcRenderer.invoke('is-window-closable'), |
91 | | - isWindowMenuBarVisible: () => ipcRenderer.invoke('is-window-menu-bar-visible'), |
| 97 | + getWindowPosition: () => ipcRenderer.invoke("get-window-position"), |
| 98 | + getWindowSize: () => ipcRenderer.invoke("get-window-size"), |
| 99 | + getWindowTitle: () => ipcRenderer.invoke("get-window-title"), |
| 100 | + getWindowBackgroundColor: () => |
| 101 | + ipcRenderer.invoke("get-window-background-color"), |
| 102 | + getWindowOpacity: () => ipcRenderer.invoke("get-window-opacity"), |
| 103 | + isWindowVisible: () => ipcRenderer.invoke("is-window-visible"), |
| 104 | + isWindowMaximized: () => ipcRenderer.invoke("is-window-maximized"), |
| 105 | + isWindowMinimized: () => ipcRenderer.invoke("is-window-minimized"), |
| 106 | + isWindowFullScreen: () => ipcRenderer.invoke("is-window-full-screen"), |
| 107 | + isWindowResizable: () => ipcRenderer.invoke("is-window-resizable"), |
| 108 | + isWindowVisibleOnAllWorkspaces: () => |
| 109 | + ipcRenderer.invoke("is-window-visible-on-all-workspaces"), |
| 110 | + isWindowAlwaysOnTop: () => ipcRenderer.invoke("is-window-always-on-top"), |
| 111 | + isWindowMovable: () => ipcRenderer.invoke("is-window-movable"), |
| 112 | + isWindowMinimizable: () => ipcRenderer.invoke("is-window-minimizable"), |
| 113 | + isWindowMaximizable: () => ipcRenderer.invoke("is-window-maximizable"), |
| 114 | + isWindowClosable: () => ipcRenderer.invoke("is-window-closable"), |
| 115 | + isWindowMenuBarVisible: () => |
| 116 | + ipcRenderer.invoke("is-window-menu-bar-visible"), |
92 | 117 |
|
93 | 118 | // Other IPC APIs |
94 | 119 | on(...args: Parameters<typeof ipcRenderer.on>) { |
95 | 120 | const [channel, listener] = args; |
96 | | - return ipcRenderer.on(channel, (event, ...args) => listener(event, ...args)); |
| 121 | + return ipcRenderer.on(channel, (event, ...args) => |
| 122 | + listener(event, ...args) |
| 123 | + ); |
97 | 124 | }, |
98 | 125 | off(...args: Parameters<typeof ipcRenderer.off>) { |
99 | 126 | const [channel, ...omit] = args; |
|
0 commit comments