diff --git a/v2/internal/app/desktop.go b/v2/internal/app/desktop.go index fbcf33b5..506a502e 100644 --- a/v2/internal/app/desktop.go +++ b/v2/internal/app/desktop.go @@ -69,7 +69,8 @@ func CreateApp(appoptions *options.App) (*App, error) { menuManager := menumanager.NewManager() // Process the application menu - menuManager.SetApplicationMenu(options.GetApplicationMenu(appoptions)) + appMenu := options.GetApplicationMenu(appoptions) + menuManager.SetApplicationMenu(appMenu) // Process context menus contextMenus := options.GetContextMenus(appoptions) diff --git a/v2/internal/ffenestri/ffenestri_windows.go b/v2/internal/ffenestri/ffenestri_windows.go index f8b19dd4..eceadd70 100644 --- a/v2/internal/ffenestri/ffenestri_windows.go +++ b/v2/internal/ffenestri/ffenestri_windows.go @@ -34,12 +34,13 @@ func (a *Application) processPlatformSettings() error { C.DisableWindowIcon(a.app) } - //// Process menu - ////applicationMenu := options.GetApplicationMenu(a.config) - //applicationMenu := a.menuManager.GetApplicationMenuJSON() - //if applicationMenu != "" { - // C.SetApplicationMenu(a.app, a.string2CString(applicationMenu)) - //} + // Process menu + //applicationMenu := options.GetApplicationMenu(a.config) + applicationMenu := a.menuManager.GetApplicationMenuJSON() + println("Appmenu =", applicationMenu) + if applicationMenu != "" { + C.SetApplicationMenu(a.app, a.string2CString(applicationMenu)) + } // //// Process tray //trays, err := a.menuManager.GetTrayMenus() diff --git a/v2/pkg/menu/windows.go b/v2/pkg/menu/windows.go new file mode 100644 index 00000000..8f2be52f --- /dev/null +++ b/v2/pkg/menu/windows.go @@ -0,0 +1,11 @@ +package menu + +// DefaultWindowsMenu returns a default menu including the default +// Application and Edit menus. Use `.Append()` to add to it. +func DefaultWindowsMenu() *Menu { + return NewMenuFromItems( + FileMenu(), + EditMenu(), + WindowMenu(), + ) +} diff --git a/v2/pkg/options/options.go b/v2/pkg/options/options.go index 8025865f..90fa24a4 100644 --- a/v2/pkg/options/options.go +++ b/v2/pkg/options/options.go @@ -107,14 +107,14 @@ func GetApplicationMenu(appoptions *App) *menu.Menu { if appoptions.Mac != nil { result = appoptions.Mac.Menu } - //case "linux": - // if appoptions.Linux != nil { - // result = appoptions.Linux.TrayMenu - // } - //case "windows": - // if appoptions.Windows != nil { - // result = appoptions.Windows.TrayMenu - // } + //case "linux": + // if appoptions.Linux != nil { + // result = appoptions.Linux.TrayMenu + // } + case "windows": + if appoptions.Windows != nil { + result = appoptions.Windows.Menu + } } if result == nil { diff --git a/v2/pkg/options/windows/windows.go b/v2/pkg/options/windows/windows.go index 827e4c05..22b6817c 100644 --- a/v2/pkg/options/windows/windows.go +++ b/v2/pkg/options/windows/windows.go @@ -1,8 +1,11 @@ package windows -// Options are options specific to Mac +import "github.com/wailsapp/wails/v2/pkg/menu" + +// Options are options specific to Windows type Options struct { WebviewIsTransparent bool WindowBackgroundIsTranslucent bool DisableWindowIcon bool + Menu *menu.Menu }