From 013ef152092eeb470a2b61e3c39fb6e30ad8c213 Mon Sep 17 00:00:00 2001 From: Caleb Bassi Date: Fri, 1 Feb 2019 21:05:03 -0800 Subject: [PATCH] Update List example with more scrolling options --- _examples/list.go | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) 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) } }