Much Work

- Definable KeyMaps
- Change 'Tabbable' to just use 'Focusable'
This commit is contained in:
2025-09-04 11:09:34 -05:00
parent c1db729bb3
commit f571b13a31
26 changed files with 881 additions and 615 deletions

View File

@@ -49,24 +49,25 @@ func NewRuneMap(m map[rune]func(*tcell.EventKey) bool) KeyMap {
}
}
func (m KeyMap) Add(k tcell.Key, do func(*tcell.EventKey) bool) { m.Keys[k] = do }
func (m KeyMap) Remove(k tcell.Key) {
if _, ok := m.Keys[k]; ok {
delete(m.Keys, k)
func (m KeyMap) Merge(km KeyMap) {
for k, v := range km.Keys {
m.Keys[k] = v
}
for r, v := range km.Runes {
m.Runes[r] = v
}
}
func (m KeyMap) Add(k tcell.Key, do func(*tcell.EventKey) bool) { m.Keys[k] = do }
func (m KeyMap) Remove(k tcell.Key) { delete(m.Keys, k) }
func (m KeyMap) AddAll(all map[tcell.Key]func(*tcell.EventKey) bool) {
for k, v := range all {
m.Add(k, v)
}
}
func (m KeyMap) AddRune(k rune, do func(*tcell.EventKey) bool) { m.Runes[k] = do }
func (m KeyMap) RemoveRune(k rune) {
if _, ok := m.Runes[k]; ok {
delete(m.Runes, k)
}
}
func (m KeyMap) RemoveRune(k rune) { delete(m.Runes, k) }
func (m KeyMap) AddRunes(all map[rune]func(*tcell.EventKey) bool) {
for k, v := range all {