diff --git a/_examples/list.go b/_examples/list.go index 96810d6..7b02887 100644 --- a/_examples/list.go +++ b/_examples/list.go @@ -29,14 +29,17 @@ func main() { "[4] output.go", "[5] random_out.go", "[6] dashboard.go", - "[7] nsf/termbox-go", + "[7] foo", + "[8] bar", + "[9] baz", } l.TextStyle = ui.NewStyle(ui.ColorYellow) l.WrapText = false - l.SetRect(0, 0, 25, 5) + l.SetRect(0, 0, 25, 8) ui.Render(l) + previousKey := "" uiEvents := ui.PollEvents() for { e := <-uiEvents @@ -45,16 +48,32 @@ func main() { return case "j", "": l.ScrollDown() - ui.Render(l) case "k", "": l.ScrollUp() - ui.Render(l) + case "": + l.HalfPageDown() + case "": + l.HalfPageUp() case "": l.PageDown() - ui.Render(l) case "": l.PageUp() - ui.Render(l) + case "g": + if previousKey == "g" { + l.ScrollTop() + } + case "": + l.ScrollTop() + case "G", "": + l.ScrollBottom() } + + if previousKey == "g" { + previousKey = "" + } else { + previousKey = e.ID + } + + ui.Render(l) } }