HandleTime

This commit is contained in:
2025-09-08 18:40:10 -05:00
parent f571b13a31
commit 31161d7b99
10 changed files with 53 additions and 15 deletions

View File

@@ -116,7 +116,12 @@ func (w *Alert) HandleKey(ev *tcell.EventKey) bool {
}
return w.keyMap.Handle(ev)
}
func (w *Alert) HandleTime(ev *tcell.EventTime) {}
func (w *Alert) HandleTime(ev *tcell.EventTime) {
w.layout.HandleTime(ev)
w.btnLayout.HandleTime(ev)
}
func (w *Alert) Draw(screen tcell.Screen) {
if !w.visible {
return

View File

@@ -73,7 +73,7 @@ func (w *BorderedWidget) AddToKeyMap(km KeyMap) { w.widget.AddToKeyM
func (w *BorderedWidget) RemoveFromKeyMap(km KeyMap) { w.widget.RemoveFromKeyMap(km) }
func (w *BorderedWidget) HandleKey(ev *tcell.EventKey) bool { return w.HandleKey(ev) }
func (w *BorderedWidget) HandleTime(ev *tcell.EventTime) { w.HandleTime(ev) }
func (w *BorderedWidget) HandleTime(ev *tcell.EventTime) { w.widget.HandleTime(ev) }
func (w *BorderedWidget) Draw(screen tcell.Screen) {
if !w.visible {

View File

@@ -101,7 +101,7 @@ func (w *FilePicker) HandleKey(ev *tcell.EventKey) bool {
}
return w.keyMap.Handle(ev)
}
func (w *FilePicker) HandleTime(ev *tcell.EventTime) {}
func (w *FilePicker) HandleTime(ev *tcell.EventTime) { w.layout.HandleTime(ev) }
func (w *FilePicker) Draw(screen tcell.Screen) {
if !w.visible {
return

View File

@@ -63,8 +63,8 @@ func (w *List) Init(id string, style tcell.Style) {
w.style = style
w.focusable = true
w.keyMap = NewKeyMap(map[tcell.Key]func(ev *tcell.EventKey) bool{
tcell.KeyUp: w.MoveUp,
tcell.KeyDown: w.MoveDown,
tcell.KeyUp: func(_ *tcell.EventKey) bool { return w.MoveUp() },
tcell.KeyDown: func(_ *tcell.EventKey) bool { return w.MoveDown() },
tcell.KeyEnter: func(ev *tcell.EventKey) bool {
if w.onSelect != nil && w.cursor < len(w.list) {
return w.onSelect(w.cursor, w.list[w.cursor])
@@ -74,13 +74,13 @@ func (w *List) Init(id string, style tcell.Style) {
})
w.keyMap.AddRune('j', func(ev *tcell.EventKey) bool {
if w.vimMode {
return w.MoveDown(ev)
return w.MoveDown()
}
return false
})
w.keyMap.AddRune('k', func(ev *tcell.EventKey) bool {
if w.vimMode {
return w.MoveUp(ev)
return w.MoveUp()
}
return false
})
@@ -189,7 +189,7 @@ func (w *List) MinW() int {
func (w *List) MinH() int { return 4 }
func (w *List) SetCursorWrap(b bool) { w.cursorWrap = b }
func (w *List) MoveUp(ev *tcell.EventKey) bool {
func (w *List) MoveUp() bool {
if w.cursor > 0 {
w.cursor--
return true
@@ -200,7 +200,7 @@ func (w *List) MoveUp(ev *tcell.EventKey) bool {
return false
}
func (w *List) MoveDown(ev *tcell.EventKey) bool {
func (w *List) MoveDown() bool {
if w.cursor < len(w.list)-1 {
w.cursor++
return true

View File

@@ -116,7 +116,13 @@ func (w *Menu) HandleKey(ev *tcell.EventKey) bool {
// See if we can find an item that matches the key pressed
return false
}
func (w *Menu) HandleTime(ev *tcell.EventTime) {}
func (w *Menu) HandleTime(ev *tcell.EventTime) {
for i := range w.items {
w.items[i].HandleTime(ev)
}
}
func (w *Menu) Draw(screen tcell.Screen) {
switch w.menuType {
case MenuTypeH:

View File

@@ -101,7 +101,13 @@ func (w *MenuItem) HandleKey(ev *tcell.EventKey) bool {
// Look for a sub-item that's selected
return w.keyMap.Handle(ev)
}
func (w *MenuItem) HandleTime(ev *tcell.EventTime) {}
func (w *MenuItem) HandleTime(ev *tcell.EventTime) {
for i := range w.items {
w.items[i].HandleTime(ev)
}
}
func (w *MenuItem) Draw(screen tcell.Screen) {
if !w.visible {
return

View File

@@ -100,7 +100,14 @@ func (w *Prompt) HandleKey(ev *tcell.EventKey) bool {
}
return w.keyMap.Handle(ev)
}
func (w *Prompt) HandleTime(ev *tcell.EventTime) {}
func (w *Prompt) HandleTime(ev *tcell.EventTime) {
w.message.HandleTime(ev)
w.field.HandleTime(ev)
w.btnOk.HandleTime(ev)
w.btnCancel.HandleTime(ev)
}
func (w *Prompt) Draw(screen tcell.Screen) {
if !w.visible {
return

View File

@@ -95,7 +95,12 @@ func (w *RelativeLayout) RemoveFromKeyMap(km KeyMap) {
}
}
func (w *RelativeLayout) HandleKey(ev *tcell.EventKey) bool { return w.keyMap.Handle(ev) }
func (w *RelativeLayout) HandleTime(ev *tcell.EventTime) {}
func (w *RelativeLayout) HandleTime(ev *tcell.EventTime) {
for i := range w.widgets {
w.widgets[i].HandleTime(ev)
}
}
func (w *RelativeLayout) Draw(screen tcell.Screen) {
if !w.visible {
return

View File

@@ -188,7 +188,7 @@ func (w *Searcher) handleKeyEnter(ev *tcell.EventKey) bool {
return false
}
func (w *Searcher) HandleTime(ev *tcell.EventTime) {}
func (w *Searcher) HandleTime(ev *tcell.EventTime) { w.search.HandleTime(ev) }
func (w *Searcher) Draw(screen tcell.Screen) {
if !w.visible {
return

View File

@@ -161,7 +161,16 @@ func (w *TimeField) HandleKey(ev *tcell.EventKey) bool {
}
return false
}
func (w *TimeField) HandleTime(ev *tcell.EventTime) {}
func (w *TimeField) HandleTime(ev *tcell.EventTime) {
for _, wd := range []Widget{
w.fldYear, w.fldMonth, w.fldDay, w.fldHour,
w.fldMinute, w.fldSecond, w.btnNow,
} {
wd.HandleTime(ev)
}
}
func (w *TimeField) Draw(screen tcell.Screen) {
if !w.visible {
return