mirror of
https://github.com/taigrr/wails.git
synced 2026-04-02 05:08:54 -07:00
Updated accelerators API
This commit is contained in:
@@ -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},
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user