5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 19:50:15 +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) - [1. Internationalization](#nav-1)
- [2. Table of Contents](#nav-2) - [2. Table of Contents](#nav-2)
- [3. Introductions](#nav-3) - [3. Introduction](#nav-3)
- [3.1 Official Website](#nav-3-1) - [3.1 Official Website](#nav-3-1)
- [4. Features](#nav-4) - [4. Features](#nav-4)
- [5. Sponsors](#nav-5) - [5. Sponsors](#nav-5)

View File

@ -49,6 +49,7 @@ void* NewMenu(const char* name);
void AppendSubmenu(void* parent, void* child); void AppendSubmenu(void* parent, void* child);
void AppendRole(void *inctx, void *inMenu, int role); void AppendRole(void *inctx, void *inMenu, int role);
void SetAsApplicationMenu(void *inctx, void *inMenu); 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 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); 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; 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) { void SetAbout(void *inctx, const char* title, const char* description, void* imagedata, int datalen) {
WailsContext *ctx = (__bridge WailsContext*) inctx; WailsContext *ctx = (__bridge WailsContext*) inctx;
NSString *_title = safeInit(title); NSString *_title = safeInit(title);

View File

@ -130,5 +130,6 @@ func (f *Frontend) MenuSetApplicationMenu(menu *menu.Menu) {
} }
func (f *Frontend) MenuUpdateApplicationMenu() { 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) 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) { func (w *Window) SetApplicationMenu(inMenu *menu.Menu) {
mainMenu := NewNSMenu(w.context, "") mainMenu := NewNSMenu(w.context, "")
processMenu(mainMenu, inMenu) processMenu(mainMenu, inMenu)
C.SetAsApplicationMenu(w.context, mainMenu.nsmenu) C.SetAsApplicationMenu(w.context, mainMenu.nsmenu)
} }
func (w *Window) UpdateApplicationMenu() {
C.UpdateApplicationMenu(w.context)
}