import Shared from "./share" import { Menu, Tray, ipcMain, BrowserWindow, App } from "electron" const path = require("path") // 隐藏主窗口,并创建托盘,绑定关闭事件 export default function setTray(app: App, mainWindow: BrowserWindow) { if (Shared.data.miniWindow) { mainWindow.hide() return } // 用一个 Tray 来表示一个图标,这个图标处于正在运行的系统的通知区 // 通常被添加到一个 context menu 上. // 系统托盘右键菜单 const trayMenuTemplate = [ { // 系统托盘图标目录 label: "打开主窗口", click: () => { mainWindow.show() }, }, { // 系统托盘图标目录 label: "打开悬浮窗", click: () => { ipcMain.emit("showSuspensionWindow") }, }, { // 系统托盘图标目录 label: "退出", click: () => { Shared.data.forceClose = true app.quit() }, }, ] // 设置系统托盘图标 const iconPath = path.join(__static, "/icon.png") Shared.data.miniWindow = new Tray(iconPath) // 图标的上下文菜单 const contextMenu = Menu.buildFromTemplate(trayMenuTemplate) // 展示主窗口,隐藏主窗口 mainWindow.hide() mainWindow.hide() // 设置托盘悬浮提示 Shared.data.miniWindow.setToolTip("never forget") // 设置托盘菜单 Shared.data.miniWindow.setContextMenu(contextMenu) // 单击托盘小图标显示应用 Shared.data.miniWindow.on("double-click", () => { // 显示主程序 mainWindow.show() // 关闭托盘显示 // Shared.data.miniWindow.destroy(); }) return Shared.data.miniWindow }