Files
behavior3editor/main-process/MainProcess.tsx
T
XBinary 0386083ea8 调整升级
1.更改了electron和nsis镜像地址。
2.升级了electron到20.0.3, 修改了新版romote的处理方式。
3.增加了canvas右键菜单功能。
4.Explorer显示纵向滚动条。
2022-08-24 00:51:42 +08:00

73 lines
2.2 KiB
TypeScript

import { app, BrowserWindow, Menu, MenuItem, dialog, nativeTheme } from "electron";
import AppMenu from "./AppMenu";
import Settings from "./Settings";
import MainEventType from "../common/MainEventType";
import electronLocalshortcut from "electron-localshortcut";
// 一些暴露给render-process的全局变量
export interface Global {
settings: Settings;
}
declare var global: Global;
export class MainProcess {
mainWindow: BrowserWindow;
appMenu: AppMenu;
settings: Settings;
constructor() {
nativeTheme.themeSource = "dark";
app.on("ready", () => {
this.createWindow();
electronLocalshortcut.register(this.mainWindow, "Ctrl+C", () => {
this.mainWindow.webContents.send(MainEventType.COPY_NODE);
});
electronLocalshortcut.register(this.mainWindow, "Ctrl+V", () => {
this.mainWindow.webContents.send(MainEventType.PASTE_NODE);
});
});
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();
}
});
app.on("activate", () => {
if (this.mainWindow === null) {
this.createWindow();
}
});
}
createWindow() {
this.settings = new Settings();
global.settings = this.settings;
this.mainWindow = new BrowserWindow({
width: 1280,
height: 800,
webPreferences: {
nodeIntegration: true,
contextIsolation:false,
},
// fullscreenable:false,
// maximizable:false
});
require("@electron/remote/main").initialize();
require("@electron/remote/main").enable(this.mainWindow.webContents);
this.mainWindow.maximize();
// mainWindow.webContents.openDevTools();
this.mainWindow.loadFile("index.html");
this.mainWindow.on("closed", function () {
this.mainWindow = null;
});
this.appMenu = new AppMenu(this);
this.rebuildMenu();
}
rebuildMenu() {
Menu.setApplicationMenu(this.appMenu.createMenu());
}
}
export default new MainProcess();