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

@@ -25,8 +25,9 @@ import "github.com/gdamore/tcell"
// BlankWidget is just blank. It's a good placeholder, if needed.
type BlankWidget struct {
id string
x, y int
id string
x, y int
keyMap KeyMap
}
var _ Widget = (*BlankWidget)(nil)
@@ -36,32 +37,41 @@ func NewBlankWidget(id string) *BlankWidget {
return ret
}
func (w *BlankWidget) Init(id string, st tcell.Style) {}
func (w *BlankWidget) Init(id string, st tcell.Style) { w.keyMap = BlankKeyMap() }
func (w *BlankWidget) Id() string { return w.id }
func (w *BlankWidget) HandleResize(ev *tcell.EventResize) {}
func (w *BlankWidget) HandleKey(ev *tcell.EventKey) bool { return false }
func (w *BlankWidget) HandleTime(ev *tcell.EventTime) {}
func (w *BlankWidget) Draw(screen tcell.Screen) {}
func (w *BlankWidget) SetKeyMap(km KeyMap) { w.keyMap = km }
func (w *BlankWidget) AddToKeyMap(km KeyMap) { w.keyMap.Merge(km) }
func (w *BlankWidget) RemoveFromKeyMap(km KeyMap) {
for k := range km.Keys {
w.keyMap.Remove(k)
}
for r := range km.Runes {
w.keyMap.RemoveRune(r)
}
}
func (w *BlankWidget) HandleKey(ev *tcell.EventKey) bool { return false }
func (w *BlankWidget) HandleTime(ev *tcell.EventTime) {}
func (w *BlankWidget) Draw(screen tcell.Screen) {}
func (w *BlankWidget) Active() bool { return false }
func (w *BlankWidget) SetActive(a bool) {}
func (w *BlankWidget) Visible() bool { return true }
func (w *BlankWidget) SetVisible(v bool) {}
func (w *BlankWidget) Focusable() bool { return false }
func (w *BlankWidget) Tabbable() bool { return false }
func (w *BlankWidget) SetTabbable(t bool) {}
func (w *BlankWidget) SetX(x int) {}
func (w *BlankWidget) SetY(y int) {}
func (w *BlankWidget) GetX() int { return w.x }
func (w *BlankWidget) GetY() int { return w.y }
func (w *BlankWidget) GetPos() Coord { return Coord{X: w.x, Y: w.y} }
func (w *BlankWidget) SetPos(pos Coord) {}
func (w *BlankWidget) SetSize(size Coord) {}
func (w *BlankWidget) SetW(wd int) {}
func (w *BlankWidget) SetH(h int) {}
func (w *BlankWidget) GetW() int { return 0 }
func (w *BlankWidget) GetH() int { return 0 }
func (w *BlankWidget) WantW() int { return 0 }
func (w *BlankWidget) WantH() int { return 0 }
func (w *BlankWidget) MinW() int { return 0 }
func (w *BlankWidget) MinH() int { return 0 }
func (w *BlankWidget) Active() bool { return false }
func (w *BlankWidget) SetActive(a bool) {}
func (w *BlankWidget) Visible() bool { return true }
func (w *BlankWidget) SetVisible(v bool) {}
func (w *BlankWidget) Focusable() bool { return false }
func (w *BlankWidget) SetFocusable(t bool) {}
func (w *BlankWidget) SetX(x int) {}
func (w *BlankWidget) SetY(y int) {}
func (w *BlankWidget) GetX() int { return w.x }
func (w *BlankWidget) GetY() int { return w.y }
func (w *BlankWidget) GetPos() Coord { return Coord{X: w.x, Y: w.y} }
func (w *BlankWidget) SetPos(pos Coord) {}
func (w *BlankWidget) SetSize(size Coord) {}
func (w *BlankWidget) SetW(wd int) {}
func (w *BlankWidget) SetH(h int) {}
func (w *BlankWidget) GetW() int { return 0 }
func (w *BlankWidget) GetH() int { return 0 }
func (w *BlankWidget) WantW() int { return 0 }
func (w *BlankWidget) WantH() int { return 0 }
func (w *BlankWidget) MinW() int { return 0 }
func (w *BlankWidget) MinH() int { return 0 }