From 06a0332374fb07446b341923ec7b293737338f00 Mon Sep 17 00:00:00 2001 From: Ayooluwa Isaiah Date: Tue, 25 Aug 2020 20:02:01 +0100 Subject: [PATCH] More table scrolling options --- v3/widgets/table.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/v3/widgets/table.go b/v3/widgets/table.go index 355996e..f5fde85 100644 --- a/v3/widgets/table.go +++ b/v3/widgets/table.go @@ -189,10 +189,30 @@ func (self *Table) ScrollDown() { self.ScrollAmount(1) } -func (self *Table) ScrollFirst() { +func (self *Table) ScrollTop() { self.SelectedRow = 1 } -func (self *Table) ScrollLast() { +func (self *Table) ScrollBottom() { self.SelectedRow = len(self.Rows) - 1 } + +func (self *Table) ScrollPageUp() { + if self.SelectedRow > self.topRow { + self.SelectedRow = self.topRow + } else { + self.ScrollAmount(-self.Inner.Dy()) + } +} + +func (self *Table) ScrollPageDown() { + self.ScrollAmount(self.Inner.Dy()) +} + +func (self *Table) ScrollHalfPageUp() { + self.ScrollAmount(-int(FloorFloat64(float64(self.Inner.Dy()) / 2))) +} + +func (self *Table) ScrollHalfPageDown() { + self.ScrollAmount(int(FloorFloat64(float64(self.Inner.Dy()) / 2))) +}