148 lines
3.7 KiB
TypeScript
148 lines
3.7 KiB
TypeScript
import { createEnterPage } from '../window/page/enter.ts';
|
|
import { BrowserWindow, Menu, app } from 'electron';
|
|
import { shell } from 'electron';
|
|
import path from 'path';
|
|
import { getLogPath, log } from '../logger.ts';
|
|
import { createAppPackagesPage } from '../window/page/app-packages.ts';
|
|
import { relunch } from '../window/relunch.ts';
|
|
import { checkShowPage } from '../window/page/index.ts';
|
|
export const loadMenu = () => {
|
|
const template = [
|
|
{
|
|
label: app.name,
|
|
submenu: [
|
|
{
|
|
label: '关于',
|
|
role: 'about',
|
|
},
|
|
{
|
|
label: '退出',
|
|
click: () => {
|
|
if (process.platform !== 'darwin') {
|
|
app.quit();
|
|
} else {
|
|
app.exit();
|
|
}
|
|
},
|
|
},
|
|
// {
|
|
// label: '检查更新',
|
|
// click: () => {
|
|
// autoUpdater.checkForUpdatesAndNotify();
|
|
// },
|
|
// },
|
|
],
|
|
},
|
|
{
|
|
label: '打开应用',
|
|
submenu: [
|
|
{
|
|
label: '首页',
|
|
click: () => {
|
|
// 获取当前window
|
|
const mainWindow = BrowserWindow.getFocusedWindow();
|
|
if (mainWindow) {
|
|
checkShowPage(mainWindow);
|
|
}
|
|
},
|
|
},
|
|
{
|
|
label: 'note',
|
|
click: () => {
|
|
// 获取当前window
|
|
const mainWindow = BrowserWindow.getFocusedWindow();
|
|
if (mainWindow) {
|
|
checkShowPage(mainWindow, '/web/note');
|
|
}
|
|
},
|
|
},
|
|
{
|
|
label: 'root-center',
|
|
click: () => {
|
|
// 获取当前window
|
|
const mainWindow = BrowserWindow.getFocusedWindow();
|
|
if (mainWindow) {
|
|
checkShowPage(mainWindow, '/root/center');
|
|
}
|
|
},
|
|
},
|
|
{
|
|
label: '打开配置',
|
|
click: async () => {
|
|
createEnterPage();
|
|
},
|
|
},
|
|
{
|
|
label: '打开应用市场',
|
|
click: async () => {
|
|
createAppPackagesPage();
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: '编辑',
|
|
submenu: [
|
|
{ label: '复制', accelerator: 'CmdOrCtrl+C', selector: 'copy:' },
|
|
{ label: '粘贴', accelerator: 'CmdOrCtrl+V', selector: 'paste:' },
|
|
{ label: '撤销', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' },
|
|
{ label: '全选', accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' },
|
|
],
|
|
},
|
|
{
|
|
label: '查看',
|
|
role: 'view',
|
|
submenu: [
|
|
{
|
|
label: '刷新',
|
|
role: 'reload',
|
|
},
|
|
{
|
|
label: '强制刷新',
|
|
role: 'forcereload',
|
|
},
|
|
{
|
|
label: '重启',
|
|
click: () => {
|
|
relunch();
|
|
},
|
|
},
|
|
{
|
|
label: '打开开发者工具',
|
|
click: () => {
|
|
const mainWindow = BrowserWindow.getFocusedWindow();
|
|
if (mainWindow) {
|
|
openDevTools(mainWindow);
|
|
}
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: '帮助',
|
|
role: 'help',
|
|
submenu: [
|
|
{
|
|
label: '打开日志',
|
|
click: async () => {
|
|
log.transports.file.fileName;
|
|
shell.openExternal('file://' + path.join(getLogPath()));
|
|
},
|
|
},
|
|
],
|
|
},
|
|
];
|
|
// @ts-ignore
|
|
const menu = Menu.buildFromTemplate(template);
|
|
Menu.setApplicationMenu(menu);
|
|
};
|
|
|
|
export const openDevTools = (mainWindow: BrowserWindow) => {
|
|
let window = mainWindow.getBrowserView() ? mainWindow.getBrowserView() : mainWindow;
|
|
if (window.webContents.isDevToolsOpened()) {
|
|
window.webContents.closeDevTools();
|
|
} else {
|
|
window.webContents.openDevTools();
|
|
}
|
|
};
|