48 lines
924 B
TypeScript
48 lines
924 B
TypeScript
import { Tray, Menu, BrowserWindow, app, nativeImage } from 'electron'
|
|
import * as path from 'path'
|
|
import * as fs from 'fs'
|
|
|
|
let tray: Tray | null = null
|
|
|
|
export function createTray(win: BrowserWindow): void {
|
|
const iconPath = path.join(__dirname, '../../src/assets/icon.png')
|
|
|
|
let icon: Electron.NativeImage
|
|
if (fs.existsSync(iconPath)) {
|
|
icon = nativeImage.createFromPath(iconPath)
|
|
} else {
|
|
icon = nativeImage.createEmpty()
|
|
}
|
|
|
|
try {
|
|
tray = new Tray(icon)
|
|
} catch {
|
|
return
|
|
}
|
|
|
|
const contextMenu = Menu.buildFromTemplate([
|
|
{
|
|
label: '显示主面板',
|
|
click: () => {
|
|
win.show()
|
|
win.focus()
|
|
}
|
|
},
|
|
{ type: 'separator' },
|
|
{
|
|
label: '退出',
|
|
click: () => {
|
|
app.quit()
|
|
}
|
|
}
|
|
])
|
|
|
|
tray.setToolTip('AI 阅卷助手')
|
|
tray.setContextMenu(contextMenu)
|
|
|
|
tray.on('click', () => {
|
|
win.show()
|
|
win.focus()
|
|
})
|
|
}
|