54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package ui
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/theme"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type toolMenu struct {
|
|
*fyne.MainMenu
|
|
sysMenu *fyne.Menu
|
|
appMenus []*fyne.MenuItem
|
|
|
|
//退出
|
|
quite *fyne.MenuItem
|
|
|
|
// 工具
|
|
toolMenu *fyne.Menu
|
|
//同步配置
|
|
syncConfMenu *fyne.MenuItem
|
|
}
|
|
|
|
func newToolMenu() *toolMenu {
|
|
var mm toolMenu
|
|
// system
|
|
mm.appMenus = make([]*fyne.MenuItem, len(toolRegister))
|
|
for i, app := range toolRegister {
|
|
mm.appMenus[i] = fyne.NewMenuItem(app.GetAppName(), func() {
|
|
err := toolWin.at.openApp(app)
|
|
if err != nil {
|
|
logrus.Errorf("打开 %s, err:%v", app.GetAppName(), err)
|
|
}
|
|
})
|
|
mm.appMenus[i].Icon = app.Icon()
|
|
}
|
|
mm.quite = fyne.NewMenuItem("退出", toolWin.quiteHandle)
|
|
mm.quite.Icon = theme.LogoutIcon()
|
|
mm.quite.IsQuit = true
|
|
mm.sysMenu = fyne.NewMenu("应用", mm.appMenus...)
|
|
mm.sysMenu.Items = append(mm.sysMenu.Items, fyne.NewMenuItemSeparator(), mm.quite)
|
|
|
|
//tool
|
|
mm.syncConfMenu = fyne.NewMenuItem("同步云配置", toolWin.syncConfig)
|
|
mm.toolMenu = fyne.NewMenu("工具",
|
|
mm.syncConfMenu,
|
|
)
|
|
|
|
mm.MainMenu = fyne.NewMainMenu(
|
|
mm.sysMenu,
|
|
mm.toolMenu,
|
|
)
|
|
return &mm
|
|
}
|