Feature: Add menu helpers

This commit is contained in:
Lea Anthony
2022-04-09 20:36:48 +10:00
parent f08176079c
commit ebf4cf13f2
2 changed files with 72 additions and 19 deletions
+36
View File
@@ -1,5 +1,7 @@
package menu
import "github.com/wailsapp/wails/v2/pkg/menu/keys"
type Menu struct {
Items []*MenuItem
}
@@ -20,6 +22,40 @@ func (m *Menu) Merge(menu *Menu) {
}
}
// AddText adds a TextMenu item to the menu
func (m *Menu) AddText(label string, accelerator *keys.Accelerator, click Callback) *MenuItem {
item := Text(label, accelerator, click)
m.Append(item)
return item
}
// AddCheckbox adds a CheckboxMenu item to the menu
func (m *Menu) AddCheckbox(label string, checked bool, accelerator *keys.Accelerator, click Callback) *MenuItem {
item := Checkbox(label, checked, accelerator, click)
m.Append(item)
return item
}
// AddRadio adds a radio item to the menu
func (m *Menu) AddRadio(label string, checked bool, accelerator *keys.Accelerator, click Callback) *MenuItem {
item := Radio(label, checked, accelerator, click)
m.Append(item)
return item
}
// AddSeparator adds a separator to the menu
func (m *Menu) AddSeparator() {
item := Separator()
m.Append(item)
}
func (m *Menu) AddSubmenu(label string) *Menu {
submenu := NewMenu()
item := SubMenu(label, submenu)
m.Append(item)
return submenu
}
func (m *Menu) Prepend(item *MenuItem) {
m.Items = append([]*MenuItem{item}, m.Items...)
}