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:
parent
43c29abb23
commit
cf3a868e3a
@ -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)
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user