From 89094fecf4cb1c018f15c976641cd18c255eac28 Mon Sep 17 00:00:00 2001 From: Benjamin Chausse Date: Sat, 23 Nov 2024 18:12:03 -0500 Subject: Semi-working POC --- internal/slider/keys.go | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 internal/slider/keys.go (limited to 'internal/slider/keys.go') diff --git a/internal/slider/keys.go b/internal/slider/keys.go new file mode 100644 index 0000000..9f96903 --- /dev/null +++ b/internal/slider/keys.go @@ -0,0 +1,52 @@ +package slider + +import "github.com/charmbracelet/bubbles/key" + +type keybinds struct { + incRegular key.Binding + decRegular key.Binding + incPrecise key.Binding + decPrecise key.Binding + // quitApp key.Binding +} + +func newKeybinds() keybinds { + return keybinds{ + incRegular: key.NewBinding( + key.WithKeys("right", "l"), + key.WithHelp("l", "Increase (coarse)"), + ), + decRegular: key.NewBinding( + key.WithKeys("left", "h"), + key.WithHelp("h", "Decrease (coarse)"), + ), + incPrecise: key.NewBinding( + key.WithKeys("shift+right", "L"), + key.WithHelp("L", "Increase (fine)"), + ), + decPrecise: key.NewBinding( + key.WithKeys("shift+left", "H"), + key.WithHelp("H", "Decrease (fine)"), + ), + } +} + +// Join all keybindings into a single slice +// a parent can use to know what Keys +// it's children have. +func Keys() []key.Binding { + k := newKeybinds() + return []key.Binding{ + k.incRegular, + k.decRegular, + k.incPrecise, + k.decPrecise, + } +} + +// AllKeys returns key.Bindings for the Model +// and all of its active children. The parent +// can use this to generate help text. +func (m Model) AllKeys() []key.Binding { + return Keys() +} -- cgit v1.2.3