Updated accelerators API

This commit is contained in:
Lea Anthony
2020-12-26 06:11:22 +11:00
parent a85c8ba894
commit 3b0f852f37
3 changed files with 38 additions and 38 deletions

View File

@@ -4,16 +4,16 @@ package menu
type Modifier string
const (
// CmdOrCtrl represents Command on Mac and Control on other platforms
CmdOrCtrl Modifier = "CmdOrCtrl"
// OptionOrAlt represents Option on Mac and Alt on other platforms
OptionOrAlt Modifier = "OptionOrAlt"
// Shift represents the shift key on all systems
Shift Modifier = "Shift"
// Super represents Command on Mac and the Windows key on the other platforms
Super Modifier = "Super"
// Control represents the control key on all systems
Control Modifier = "Control"
// CmdOrCtrlKey represents Command on Mac and Control on other platforms
CmdOrCtrlKey Modifier = "CmdOrCtrl"
// OptionOrAltKey represents Option on Mac and Alt on other platforms
OptionOrAltKey Modifier = "OptionOrAlt"
// ShiftKey represents the shift key on all systems
ShiftKey Modifier = "Shift"
// SuperKey represents Command on Mac and the Windows key on the other platforms
SuperKey Modifier = "Super"
// ControlKey represents the control key on all systems
ControlKey Modifier = "Control"
)
// Accelerator holds the keyboard shortcut for a menu item
@@ -29,48 +29,48 @@ func Accel(key string) *Accelerator {
}
}
// CmdOrCtrlAccel creates a 'CmdOrCtrl' Accelerator
func CmdOrCtrlAccel(key string) *Accelerator {
// CmdOrCtrl creates a 'CmdOrCtrl' Accelerator
func CmdOrCtrl(key string) *Accelerator {
return &Accelerator{
Key: key,
Modifiers: []Modifier{CmdOrCtrl},
Modifiers: []Modifier{CmdOrCtrlKey},
}
}
// OptionOrAltAccel creates a 'OptionOrAlt' Accelerator
func OptionOrAltAccel(key string) *Accelerator {
// OptionOrAlt creates a 'OptionOrAlt' Accelerator
func OptionOrAlt(key string) *Accelerator {
return &Accelerator{
Key: key,
Modifiers: []Modifier{OptionOrAlt},
Modifiers: []Modifier{OptionOrAltKey},
}
}
// ShiftAccel creates a 'Shift' Accelerator
func ShiftAccel(key string) *Accelerator {
// Shift creates a 'Shift' Accelerator
func Shift(key string) *Accelerator {
return &Accelerator{
Key: key,
Modifiers: []Modifier{Shift},
Modifiers: []Modifier{ShiftKey},
}
}
// ControlAccel creates a 'Control' Accelerator
func ControlAccel(key string) *Accelerator {
// Control creates a 'Control' Accelerator
func Control(key string) *Accelerator {
return &Accelerator{
Key: key,
Modifiers: []Modifier{Control},
Modifiers: []Modifier{ControlKey},
}
}
// SuperAccel creates a 'Super' Accelerator
func SuperAccel(key string) *Accelerator {
// Super creates a 'Super' Accelerator
func Super(key string) *Accelerator {
return &Accelerator{
Key: key,
Modifiers: []Modifier{Super},
Modifiers: []Modifier{SuperKey},
}
}
// ComboAccel creates an Accelerator with multiple Modifiers
func ComboAccel(key string, modifier1 Modifier, modifier2 Modifier, rest ...Modifier) *Accelerator {
// Combo creates an Accelerator with multiple Modifiers
func Combo(key string, modifier1 Modifier, modifier2 Modifier, rest ...Modifier) *Accelerator {
result := &Accelerator{
Key: key,
Modifiers: []Modifier{modifier1, modifier2},

View File

@@ -74,7 +74,7 @@ func (m *Menu) addMenu(mi *menu.MenuItem) {
// 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.CmdOrCtrlAccel("-"))
"Remove Last Item", menu.CmdOrCtrl("-"))
parent.Prepend(removeMenu)
m.runtime.Menu.On("Remove Last Item", m.removeMenu)
} else {
@@ -125,9 +125,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.CmdOrCtrlAccel("]")),
"Insert Before Random", menu.CmdOrCtrl("]")),
menu.Text("Insert After Random Menu Item",
"Insert After Random", menu.CmdOrCtrlAccel("[")),
"Insert After Random", menu.CmdOrCtrl("[")),
menu.Separator(),
})
@@ -248,10 +248,10 @@ 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.ShiftAccel("o")),
menu.Text("Control accelerator", "Control", menu.ControlAccel("o")),
menu.Text("Command accelerator", "Command", menu.CmdOrCtrlAccel("o")),
menu.Text("Option accelerator", "Option", menu.OptionOrAltAccel("o")),
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.SubMenu("System Keys", []*menu.MenuItem{
menu.Text("Backspace", "Backspace", menu.Accel("Backspace")),
@@ -298,13 +298,13 @@ func createApplicationMenu() *menu.Menu {
}),
}),
menu.SubMenuWithID("Dynamic Menus 1", "Dynamic Menus 1", []*menu.MenuItem{
menu.Text("Add Menu Item", "Add Menu Item", menu.CmdOrCtrlAccel("+")),
menu.Text("Add Menu Item", "Add Menu Item", menu.CmdOrCtrl("+")),
menu.Separator(),
}),
{
Label: "Disabled Menu",
Type: menu.TextType,
Accelerator: menu.ComboAccel("p", menu.CmdOrCtrl, menu.Shift),
Accelerator: menu.Combo("p", menu.CmdOrCtrlKey, menu.ShiftKey),
Disabled: true,
},
{
@@ -316,7 +316,7 @@ func createApplicationMenu() *menu.Menu {
ID: "checkbox-menu 1",
Label: "Checkbox Menu 1",
Type: menu.CheckboxType,
Accelerator: menu.CmdOrCtrlAccel("l"),
Accelerator: menu.CmdOrCtrl("l"),
Checked: true,
},
menu.Checkbox("Checkbox Menu 2", "checkbox-menu 2", false, nil),

View File

@@ -103,7 +103,7 @@ func (t *Tray) addMenu(mi *menu.MenuItem) {
// 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.CmdOrCtrlAccel("-"))
"Remove Last Item", menu.CmdOrCtrl("-"))
parent.Prepend(removeMenu)
t.runtime.Tray.On("Remove Last Item", t.removeMenu)
} else {