diff options
Diffstat (limited to 'pkg/gui/gui-util.go')
| -rw-r--r-- | pkg/gui/gui-util.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/pkg/gui/gui-util.go b/pkg/gui/gui-util.go index d3f0934..2ae8cae 100644 --- a/pkg/gui/gui-util.go +++ b/pkg/gui/gui-util.go @@ -132,3 +132,36 @@ func (gui *Gui) refreshAfterSort(g *gocui.Gui) error { gui.refreshViews(g, entity) return nil } + +// cursor down acts like half-page down for faster scrolling +func (gui *Gui) fastCursorDown(g *gocui.Gui, v *gocui.View) error { + if v != nil { + ox, oy := v.Origin() + _, vy := v.Size() + + // TODO: do something when it hits bottom + if err := v.SetOrigin(ox, oy+vy/2); err != nil { + return err + } + } + return nil +} + +// cursor up acts like half-page up for faster scrolling +func (gui *Gui) fastCursorUp(g *gocui.Gui, v *gocui.View) error { + if v != nil { + ox, oy := v.Origin() + _, vy := v.Size() + + if oy-vy/2 > 0 { + if err := v.SetOrigin(ox, oy-vy/2); err != nil { + return err + } + } else if oy-vy/2 <= 0 { + if err := v.SetOrigin(0, 0); err != nil { + return err + } + } + } + return nil +} |
