46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
goruntime "runtime"
|
|
|
|
"github.com/wailsapp/wails/v2/pkg/menu"
|
|
"github.com/wailsapp/wails/v2/pkg/menu/keys"
|
|
"github.com/wailsapp/wails/v2/pkg/runtime"
|
|
)
|
|
|
|
// createAppMenu builds the native application menu bar. macOS only: it's the
|
|
// platform convention there, and the Edit menu's standard roles are what make
|
|
// Cmd+C/V work in the webview. On Windows/Linux a menu bar renders as a stray
|
|
// in-window "File" strip (the Edit/Window mac roles don't show), so return nil.
|
|
func (a *App) createAppMenu() *menu.Menu {
|
|
if goruntime.GOOS != "darwin" {
|
|
return nil
|
|
}
|
|
|
|
m := menu.NewMenu()
|
|
|
|
m.Append(menu.AppMenu())
|
|
|
|
fileMenu := m.AddSubmenu("File")
|
|
fileMenu.AddText("Settings", keys.CmdOrCtrl(","), func(_ *menu.CallbackData) {
|
|
if a.ctx != nil {
|
|
runtime.EventsEmit(a.ctx, "app:open-settings")
|
|
}
|
|
})
|
|
fileMenu.AddText("Toggle Developer Tools", keys.CmdOrCtrl("i"), func(_ *menu.CallbackData) {
|
|
if a.ctx != nil {
|
|
runtime.WindowExecJS(a.ctx, `window.webkit.messageHandlers.external.postMessage("wails:openInspector");`)
|
|
}
|
|
})
|
|
fileMenu.AddText("Show Reasonix", nil, func(_ *menu.CallbackData) {
|
|
a.showMainWindow()
|
|
})
|
|
fileMenu.AddText("Quit Reasonix", keys.CmdOrCtrl("q"), func(_ *menu.CallbackData) {
|
|
a.quitApp()
|
|
})
|
|
m.Append(menu.EditMenu())
|
|
m.Append(menu.WindowMenu())
|
|
|
|
return m
|
|
}
|