You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

63 lines
1.6 KiB

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
}