44 lines
892 B
Go
44 lines
892 B
Go
//go:build windows
|
|
|
|
package os
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/getlantern/systray"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
"github.com/gogf/gf/v2/os/gfile"
|
|
)
|
|
|
|
func (s *sOS) start() {
|
|
|
|
// 系统托盘初始化(设置图标、右键菜单)
|
|
go systray.Run(s.onSystrayReady, s.onSystrayExit)
|
|
}
|
|
|
|
// 系统托盘初始化(设置图标、右键菜单)
|
|
func (s *sOS) onSystrayReady() {
|
|
|
|
iconByte := gfile.GetBytes(s.systray.Icon)
|
|
systray.SetIcon(iconByte)
|
|
systray.SetTitle(s.systray.Title)
|
|
systray.SetTooltip(s.systray.Tooltip)
|
|
|
|
mQuit := systray.AddMenuItem("退出", "退出应用")
|
|
// Sets the icon of a menu item. Only available on Mac and Windows.
|
|
//mQuit.SetIcon(iconByte)
|
|
go func() {
|
|
<-mQuit.ClickedCh
|
|
systray.Quit()
|
|
}()
|
|
|
|
}
|
|
|
|
func (s *sOS) onSystrayExit() {
|
|
// clean up here
|
|
g.Log().Debugf(gctx.New(), "系统托盘退出")
|
|
defer os.Exit(0)
|
|
|
|
}
|