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
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
|
|
}
|
|
|