5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 10:02:55 +08:00

[mac] Support MenuUpdateApplicationMenu

This commit is contained in:
Lea Anthony 2021-10-31 15:09:50 +11:00
parent 43c29abb23
commit cf3a868e3a
No known key found for this signature in database
GPG Key ID: 33DAF7BB90A58405
5 changed files with 16 additions and 13 deletions

View File

@ -29,7 +29,7 @@
- [1. Internationalization](#nav-1)
- [2. Table of Contents](#nav-2)
- [3. Introductions](#nav-3)
- [3. Introduction](#nav-3)
- [3.1 Official Website](#nav-3-1)
- [4. Features](#nav-4)
- [5. Sponsors](#nav-5)

View File

@ -49,6 +49,7 @@ void* NewMenu(const char* name);
void AppendSubmenu(void* parent, void* child);
void AppendRole(void *inctx, void *inMenu, int role);
void SetAsApplicationMenu(void *inctx, void *inMenu);
void UpdateApplicationMenu(void *inctx);
void SetAbout(void *inctx, const char* title, const char* description, void* imagedata, int datalen);
void* AppendMenuItem(void* inctx, void* nsmenu, const char* label, const char* shortcutKey, int modifiers, int disabled, int checked, int menuItemID);

View File

@ -256,6 +256,14 @@ void SetAsApplicationMenu(void *inctx, void *inMenu) {
ctx.applicationMenu = menu;
}
void UpdateApplicationMenu(void *inctx) {
WailsContext *ctx = (__bridge WailsContext*) inctx;
ON_MAIN_THREAD(
NSApplication *app = [NSApplication sharedApplication];
[app setMainMenu:ctx.applicationMenu];
)
}
void SetAbout(void *inctx, const char* title, const char* description, void* imagedata, int datalen) {
WailsContext *ctx = (__bridge WailsContext*) inctx;
NSString *_title = safeInit(title);

View File

@ -130,5 +130,6 @@ func (f *Frontend) MenuSetApplicationMenu(menu *menu.Menu) {
}
func (f *Frontend) MenuUpdateApplicationMenu() {
//processMenu(f.mainWindow, f.mainWindow.applicationMenu)
f.MenuSetApplicationMenu(f.frontendOptions.Menu)
f.mainWindow.UpdateApplicationMenu()
}

View File

@ -215,19 +215,12 @@ func (w *Window) Size() (int, int) {
return parseIntDuo(temp)
}
//func (w *Window) parseMenu(inMenu *menu.Menu) {
// for index, item := range inMenu.Items {
// switch item.Type {
// case menu.TextType:
// // Create NSMenuItem
// // Append to NSMenu
// // Keep track of index
// }
// }
//}
func (w *Window) SetApplicationMenu(inMenu *menu.Menu) {
mainMenu := NewNSMenu(w.context, "")
processMenu(mainMenu, inMenu)
C.SetAsApplicationMenu(w.context, mainMenu.nsmenu)
}
func (w *Window) UpdateApplicationMenu() {
C.UpdateApplicationMenu(w.context)
}