From 5c2fb81b0b172604780362bea76a0df5c746c500 Mon Sep 17 00:00:00 2001 From: delthas Date: Sat, 30 Oct 2021 15:41:48 +0200 Subject: Make vertical channel list scrollable Seems like I really have too many channels... :) --- ui/ui.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'ui/ui.go') diff --git a/ui/ui.go b/ui/ui.go index 68511ab..cda5a06 100644 --- a/ui/ui.go +++ b/ui/ui.go @@ -28,7 +28,8 @@ type UI struct { prompt StyledString status string - memberOffset int + channelOffset int + memberOffset int } func New(config Config) (ui *UI, err error) { @@ -140,6 +141,21 @@ func (ui *UI) ScrollDownHighlight() bool { return ui.bs.ScrollDownHighlight() } +func (ui *UI) ScrollChannelUpBy(n int) { + ui.channelOffset -= n + if ui.channelOffset < 0 { + ui.channelOffset = 0 + } +} + +func (ui *UI) ScrollChannelDownBy(n int) { + ui.channelOffset += n +} + +func (ui *UI) ChannelOffset() int { + return ui.channelOffset +} + func (ui *UI) ScrollMemberUpBy(n int) { ui.memberOffset -= n if ui.memberOffset < 0 { @@ -315,7 +331,7 @@ func (ui *UI) Draw(members []irc.Member) { if ui.config.ChanColWidth == 0 { ui.bs.DrawHorizontalBufferList(ui.screen, 0, h-1, w-ui.config.MemberColWidth) } else { - ui.bs.DrawVerticalBufferList(ui.screen, 0, 0, ui.config.ChanColWidth, h) + ui.bs.DrawVerticalBufferList(ui.screen, 0, 0, ui.config.ChanColWidth, h, &ui.channelOffset) } if ui.config.MemberColWidth != 0 { drawVerticalMemberList(ui.screen, w-ui.config.MemberColWidth, 0, ui.config.MemberColWidth, h, members, &ui.memberOffset) -- cgit v1.2.3