5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-04 19:21:21 +08:00
wails/v3/pkg/application/menu_windows.go
2023-04-18 21:27:09 +10:00

53 lines
1.1 KiB
Go

//go:build windows
package application
import "unsafe"
type windowsMenu struct {
menu *Menu
menuImpl unsafe.Pointer
}
func newMenuImpl(menu *Menu) *windowsMenu {
result := &windowsMenu{
menu: menu,
}
return result
}
func (m *windowsMenu) update() {
//if m.menuImpl == nil {
// m.menuImpl = C.createNSMenu(C.CString(m.menu.label))
//} else {
// C.clearMenu(m.menuImpl)
//}
m.processMenu(m.menuImpl, m.menu)
}
func (m *windowsMenu) processMenu(parent unsafe.Pointer, menu *Menu) {
//for _, item := range menu.items {
// switch item.itemType {
// case submenu:
// submenu := item.submenu
// nsSubmenu := C.createNSMenu(C.CString(item.label))
// m.processMenu(nsSubmenu, submenu)
// menuItem := newMenuItemImpl(item)
// item.impl = menuItem
// C.addMenuItem(parent, menuItem.nsMenuItem)
// C.setMenuItemSubmenu(menuItem.nsMenuItem, nsSubmenu)
// if item.role == ServicesMenu {
// C.addServicesMenu(nsSubmenu)
// }
// case text, checkbox, radio:
// menuItem := newMenuItemImpl(item)
// item.impl = menuItem
// C.addMenuItem(parent, menuItem.nsMenuItem)
// case separator:
// C.addMenuSeparator(parent)
// }
//
//}
}