mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-04 19:21:21 +08:00
53 lines
1.1 KiB
Go
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)
|
|
// }
|
|
//
|
|
//}
|
|
}
|