diff --git a/v2/pkg/menu/acelerators.go b/v2/pkg/menu/keys/keys.go similarity index 95% rename from v2/pkg/menu/acelerators.go rename to v2/pkg/menu/keys/keys.go index 890869b4..1d529759 100644 --- a/v2/pkg/menu/acelerators.go +++ b/v2/pkg/menu/keys/keys.go @@ -1,4 +1,4 @@ -package menu +package keys // Modifier is actually a string type Modifier string @@ -22,8 +22,8 @@ type Accelerator struct { Modifiers []Modifier } -// Accel creates a standard key Accelerator -func Accel(key string) *Accelerator { +// Key creates a standard key Accelerator +func Key(key string) *Accelerator { return &Accelerator{ Key: key, } diff --git a/v2/pkg/menu/menuitem.go b/v2/pkg/menu/menuitem.go index 3db917f3..b107c4c0 100644 --- a/v2/pkg/menu/menuitem.go +++ b/v2/pkg/menu/menuitem.go @@ -1,5 +1,7 @@ package menu +import "github.com/wailsapp/wails/v2/pkg/menu/keys" + // MenuItem represents a menuitem contained in a menu type MenuItem struct { // The unique identifier of this menu item @@ -9,7 +11,7 @@ type MenuItem struct { // Role is a predefined menu type Role Role `json:"Role,omitempty"` // Accelerator holds a representation of a key binding - Accelerator *Accelerator `json:"Accelerator,omitempty"` + Accelerator *keys.Accelerator `json:"Accelerator,omitempty"` // Type of MenuItem, EG: Checkbox, Text, Separator, Radio, Submenu Type Type // Disabled makes the item unselectable @@ -207,7 +209,7 @@ func (m *MenuItem) insertItemAtIndex(index int, target *MenuItem) bool { } // Text is a helper to create basic Text menu items -func Text(label string, id string, accelerator *Accelerator) *MenuItem { +func Text(label string, id string, accelerator *keys.Accelerator) *MenuItem { return &MenuItem{ ID: id, Label: label, @@ -224,7 +226,7 @@ func Separator() *MenuItem { } // Radio is a helper to create basic Radio menu items with an accelerator -func Radio(label string, id string, selected bool, accelerator *Accelerator) *MenuItem { +func Radio(label string, id string, selected bool, accelerator *keys.Accelerator) *MenuItem { return &MenuItem{ ID: id, Label: label, @@ -235,7 +237,7 @@ func Radio(label string, id string, selected bool, accelerator *Accelerator) *Me } // Checkbox is a helper to create basic Checkbox menu items -func Checkbox(label string, id string, checked bool, accelerator *Accelerator) *MenuItem { +func Checkbox(label string, id string, checked bool, accelerator *keys.Accelerator) *MenuItem { return &MenuItem{ ID: id, Label: label, diff --git a/v2/test/kitchensink/menu.go b/v2/test/kitchensink/menu.go index 4c1e424b..7a89f0c1 100644 --- a/v2/test/kitchensink/menu.go +++ b/v2/test/kitchensink/menu.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "github.com/wailsapp/wails/v2/pkg/menu/keys" "math/rand" "strconv" "sync" @@ -69,12 +70,12 @@ func (m *Menu) addMenu(mi *menu.MenuItem) { counter := m.incrementcounter() menuText := "Dynamic Menu Item " + strconv.Itoa(counter) parent.Append(menu.Text(menuText, menuText, nil)) - // parent.Append(menu.Text(menuText, menuText, menu.Accel("["))) + // parent.Append(menu.Text(menuText, menuText, menu.Key("["))) // If this is the first dynamic menu added, let's add a remove menu item if counter == 1 { removeMenu := menu.Text("Remove "+menuText, - "Remove Last Item", menu.CmdOrCtrl("-")) + "Remove Last Item", keys.CmdOrCtrl("-")) parent.Prepend(removeMenu) m.runtime.Menu.On("Remove Last Item", m.removeMenu) } else { @@ -116,7 +117,7 @@ func (m *Menu) removeMenu(_ *menu.MenuItem) { removeMenu.Label = "Remove " + menuText } - // parent.Append(menu.Text(menuText, menuText, menu.Accel("["))) + // parent.Append(menu.Text(menuText, menuText, menu.Key("["))) m.runtime.Menu.Update() } @@ -125,9 +126,9 @@ func (m *Menu) createDynamicMenuTwo() { // Create our submenu dm2 := menu.SubMenu("Dynamic Menus 2", []*menu.MenuItem{ menu.Text("Insert Before Random Menu Item", - "Insert Before Random", menu.CmdOrCtrl("]")), + "Insert Before Random", keys.CmdOrCtrl("]")), menu.Text("Insert After Random Menu Item", - "Insert After Random", menu.CmdOrCtrl("[")), + "Insert After Random", keys.CmdOrCtrl("[")), menu.Separator(), }) @@ -248,63 +249,63 @@ func createApplicationMenu() *menu.Menu { menu.Text("Show Dynamic Menus 2 Submenu", "show-dynamic-menus-2", nil), menu.SubMenu("Accelerators", []*menu.MenuItem{ menu.SubMenu("Modifiers", []*menu.MenuItem{ - menu.Text("Shift accelerator", "Shift", menu.Shift("o")), - menu.Text("Control accelerator", "Control", menu.Control("o")), - menu.Text("Command accelerator", "Command", menu.CmdOrCtrl("o")), - menu.Text("Option accelerator", "Option", menu.OptionOrAlt("o")), + menu.Text("Shift accelerator", "Shift", keys.Shift("o")), + menu.Text("Control accelerator", "Control", keys.Control("o")), + menu.Text("Command accelerator", "Command", keys.CmdOrCtrl("o")), + menu.Text("Option accelerator", "Option", keys.OptionOrAlt("o")), }), menu.SubMenu("System Keys", []*menu.MenuItem{ - menu.Text("Backspace", "Backspace", menu.Accel("Backspace")), - menu.Text("Tab", "Tab", menu.Accel("Tab")), - menu.Text("Return", "Return", menu.Accel("Return")), - menu.Text("Escape", "Escape", menu.Accel("Escape")), - menu.Text("Left", "Left", menu.Accel("Left")), - menu.Text("Right", "Right", menu.Accel("Right")), - menu.Text("Up", "Up", menu.Accel("Up")), - menu.Text("Down", "Down", menu.Accel("Down")), - menu.Text("Space", "Space", menu.Accel("Space")), - menu.Text("Delete", "Delete", menu.Accel("Delete")), - menu.Text("Home", "Home", menu.Accel("Home")), - menu.Text("End", "End", menu.Accel("End")), - menu.Text("Page Up", "Page Up", menu.Accel("Page Up")), - menu.Text("Page Down", "Page Down", menu.Accel("Page Down")), - menu.Text("NumLock", "NumLock", menu.Accel("NumLock")), + menu.Text("Backspace", "Backspace", keys.Key("Backspace")), + menu.Text("Tab", "Tab", keys.Key("Tab")), + menu.Text("Return", "Return", keys.Key("Return")), + menu.Text("Escape", "Escape", keys.Key("Escape")), + menu.Text("Left", "Left", keys.Key("Left")), + menu.Text("Right", "Right", keys.Key("Right")), + menu.Text("Up", "Up", keys.Key("Up")), + menu.Text("Down", "Down", keys.Key("Down")), + menu.Text("Space", "Space", keys.Key("Space")), + menu.Text("Delete", "Delete", keys.Key("Delete")), + menu.Text("Home", "Home", keys.Key("Home")), + menu.Text("End", "End", keys.Key("End")), + menu.Text("Page Up", "Page Up", keys.Key("Page Up")), + menu.Text("Page Down", "Page Down", keys.Key("Page Down")), + menu.Text("NumLock", "NumLock", keys.Key("NumLock")), }), menu.SubMenu("Function Keys", []*menu.MenuItem{ - menu.Text("F1", "F1", menu.Accel("F1")), - menu.Text("F2", "F2", menu.Accel("F2")), - menu.Text("F3", "F3", menu.Accel("F3")), - menu.Text("F4", "F4", menu.Accel("F4")), - menu.Text("F5", "F5", menu.Accel("F5")), - menu.Text("F6", "F6", menu.Accel("F6")), - menu.Text("F7", "F7", menu.Accel("F7")), - menu.Text("F8", "F8", menu.Accel("F8")), - menu.Text("F9", "F9", menu.Accel("F9")), - menu.Text("F10", "F10", menu.Accel("F10")), - menu.Text("F11", "F11", menu.Accel("F11")), - menu.Text("F12", "F12", menu.Accel("F12")), - menu.Text("F13", "F13", menu.Accel("F13")), - menu.Text("F14", "F14", menu.Accel("F14")), - menu.Text("F15", "F15", menu.Accel("F15")), - menu.Text("F16", "F16", menu.Accel("F16")), - menu.Text("F17", "F17", menu.Accel("F17")), - menu.Text("F18", "F18", menu.Accel("F18")), - menu.Text("F19", "F19", menu.Accel("F19")), - menu.Text("F20", "F20", menu.Accel("F20")), + menu.Text("F1", "F1", keys.Key("F1")), + menu.Text("F2", "F2", keys.Key("F2")), + menu.Text("F3", "F3", keys.Key("F3")), + menu.Text("F4", "F4", keys.Key("F4")), + menu.Text("F5", "F5", keys.Key("F5")), + menu.Text("F6", "F6", keys.Key("F6")), + menu.Text("F7", "F7", keys.Key("F7")), + menu.Text("F8", "F8", keys.Key("F8")), + menu.Text("F9", "F9", keys.Key("F9")), + menu.Text("F10", "F10", keys.Key("F10")), + menu.Text("F11", "F11", keys.Key("F11")), + menu.Text("F12", "F12", keys.Key("F12")), + menu.Text("F13", "F13", keys.Key("F13")), + menu.Text("F14", "F14", keys.Key("F14")), + menu.Text("F15", "F15", keys.Key("F15")), + menu.Text("F16", "F16", keys.Key("F16")), + menu.Text("F17", "F17", keys.Key("F17")), + menu.Text("F18", "F18", keys.Key("F18")), + menu.Text("F19", "F19", keys.Key("F19")), + menu.Text("F20", "F20", keys.Key("F20")), }), menu.SubMenu("Standard Keys", []*menu.MenuItem{ - menu.Text("Backtick", "Backtick", menu.Accel("`")), - menu.Text("Plus", "Plus", menu.Accel("+")), + menu.Text("Backtick", "Backtick", keys.Key("`")), + menu.Text("Plus", "Plus", keys.Key("+")), }), }), menu.SubMenuWithID("Dynamic Menus 1", "Dynamic Menus 1", []*menu.MenuItem{ - menu.Text("Add Menu Item", "Add Menu Item", menu.CmdOrCtrl("+")), + menu.Text("Add Menu Item", "Add Menu Item", keys.CmdOrCtrl("+")), menu.Separator(), }), { Label: "Disabled Menu", Type: menu.TextType, - Accelerator: menu.Combo("p", menu.CmdOrCtrlKey, menu.ShiftKey), + Accelerator: keys.Combo("p", keys.CmdOrCtrlKey, keys.ShiftKey), Disabled: true, }, { @@ -316,7 +317,7 @@ func createApplicationMenu() *menu.Menu { ID: "checkbox-menu 1", Label: "Checkbox Menu 1", Type: menu.CheckboxType, - Accelerator: menu.CmdOrCtrl("l"), + Accelerator: keys.CmdOrCtrl("l"), Checked: true, }, menu.Checkbox("Checkbox Menu 2", "checkbox-menu 2", false, nil), diff --git a/v2/test/kitchensink/tray.go b/v2/test/kitchensink/tray.go index 1417ef96..7e3847d7 100644 --- a/v2/test/kitchensink/tray.go +++ b/v2/test/kitchensink/tray.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "github.com/wailsapp/wails/v2/pkg/menu/keys" "math/rand" "strconv" "sync" @@ -98,12 +99,12 @@ func (t *Tray) addMenu(mi *menu.MenuItem) { counter := t.incrementcounter() menuText := "Dynamic Menu Item " + strconv.Itoa(counter) parent.Append(menu.Text(menuText, menuText, nil)) - // parent.Append(menu.Text(menuText, menuText, menu.Accel("["))) + // parent.Append(menu.Text(menuText, menuText, menu.Key("["))) // If this is the first dynamic menu added, let's add a remove menu item if counter == 1 { removeMenu := menu.Text("Remove "+menuText, - "Remove Last Item", menu.CmdOrCtrl("-")) + "Remove Last Item", keys.CmdOrCtrl("-")) parent.Prepend(removeMenu) t.runtime.Tray.On("Remove Last Item", t.removeMenu) } else { @@ -145,7 +146,7 @@ func (t *Tray) removeMenu(_ *menu.MenuItem) { removeMenu.Label = "Remove " + menuText } - // parent.Append(menu.Text(menuText, menuText, menu.Accel("["))) + // parent.Append(menu.Text(menuText, menuText, menu.Key("["))) t.runtime.Tray.Update() }