summaryrefslogtreecommitdiff
path: root/tui/layout.go
diff options
context:
space:
mode:
authorcitrons <citrons@mondecitronne.com>2025-06-07 14:57:04 -0500
committercitrons <citrons@mondecitronne.com>2025-06-07 16:02:18 -0500
commit855e61c53c8a401c6f0be84a63808cb94cb19903 (patch)
tree5f03c5357cf6aa75db05376cf6a42cc67d1e33c8 /tui/layout.go
parent553ebc26cda61b567418205f7ee60be122b3c84f (diff)
channel list scrolling
Diffstat (limited to 'tui/layout.go')
-rw-r--r--tui/layout.go38
1 files changed, 3 insertions, 35 deletions
diff --git a/tui/layout.go b/tui/layout.go
index 1835d72..ede0fa6 100644
--- a/tui/layout.go
+++ b/tui/layout.go
@@ -43,37 +43,8 @@ type textRun struct {
hasCursor bool
}
-type ScrollState struct {
- at string
- offset int
- absolute int
- atFirst bool
- atLast bool
-}
-
var Selected string
-func (s *ScrollState) ToStart() {
- *s = ScrollState {}
-}
-
-func (s *ScrollState) AtFirst() bool {
- return s.atFirst
-}
-
-func (s *ScrollState) AtLast() bool {
- return s.atLast
-}
-
-func (s *ScrollState) Scroll(amnt int) {
- s.offset += amnt
- s.absolute += amnt
-}
-
-func (s *ScrollState) Get() int {
- return s.absolute
-}
-
var layout struct {
front map[string]*Box
back map[string]*Box
@@ -319,12 +290,7 @@ func (b *Box) computePositions(axis int) {
if b.Dir.reverse() {
p = b.computedSize[axis] - p
}
- b.Scroll.absolute = p
- if !b.Dir.reverse() {
- b.Scroll.absolute += b.Scroll.offset
- } else {
- b.Scroll.absolute += b.Scroll.offset
- }
+ b.Scroll.absolute = p + b.Scroll.offset
}
if !b.Dir.reverse() {
@@ -467,10 +433,12 @@ func (b *Box) mouseEvents(ev MouseEvent) {
bev.Y -= b.computedRect.min[1]
bev.Pressed = false
bev.Released = false
+ bev.Scroll = 0
if bev.X >= 0 && bev.Y >= 0 &&
bev.X < b.computedSize[0] && bev.Y < b.computedSize[1] {
bev.Pressed = ev.Pressed
bev.Released = ev.Released
+ bev.Scroll = ev.Scroll
}
b.mouseEvent = bev
for _, c := range b.children {