-
-
Notifications
You must be signed in to change notification settings - Fork 9
/
setup.ts
71 lines (66 loc) · 1.95 KB
/
setup.ts
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { ipcMain, BrowserWindow, WebContents } from 'electron';
const setupEventListener = (
browserWindow: BrowserWindow,
sender: WebContents
) => {
browserWindow.addListener('maximize', () => {
sender.send(
'electron-react-titlebar/maximunize/change',
true,
browserWindow.id
);
});
browserWindow.addListener('unmaximize', () => {
sender.send(
'electron-react-titlebar/maximunize/change',
false,
browserWindow.id
);
});
};
// eslint-disable-next-line import/prefer-default-export
export const initialize = (): void => {
ipcMain.handle(
'electron-react-titlebar/initialize',
(event, browserWindowId): number | undefined => {
const browserWindow = browserWindowId
? BrowserWindow.fromId(browserWindowId)
: BrowserWindow.fromWebContents(event.sender);
if (browserWindow) {
setupEventListener(browserWindow, event.sender);
return browserWindow.id;
}
return undefined;
}
);
ipcMain.on(
'electron-react-titlebar/maximumize/set',
(event, browserWindowId) => {
const browserWindow = browserWindowId
? BrowserWindow.fromId(browserWindowId)
: BrowserWindow.fromWebContents(event.sender);
if (browserWindow?.isMaximizable()) {
if (browserWindow.isMaximized()) {
browserWindow.unmaximize();
} else {
browserWindow.maximize();
}
}
}
);
ipcMain.on(
'electron-react-titlebar/minimumize/set',
(event, browserWindowId) => {
const browserWindow = browserWindowId
? BrowserWindow.fromId(browserWindowId)
: BrowserWindow.fromWebContents(event.sender);
browserWindow?.minimize();
}
);
ipcMain.on('electron-react-titlebar/close', (event, browserWindowId) => {
const browserWindow = browserWindowId
? BrowserWindow.fromId(browserWindowId)
: BrowserWindow.fromWebContents(event.sender);
browserWindow?.close();
});
};