summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorHubert Hirtz <hubert@hirtz.pm>2021-10-19 21:31:00 +0200
committerHubert Hirtz <hubert@hirtz.pm>2021-10-19 21:31:00 +0200
commitaa0fb28ab5bce9c45f701fc058e2571db40bc459 (patch)
treea007becc6b102278460a9476375d250705631f42 /ui
parentOnly show buffer numbers when necessary (diff)
Cleanup drawVerticalMemberList
Diffstat (limited to 'ui')
-rw-r--r--ui/buffers.go34
-rw-r--r--ui/ui.go32
2 files changed, 31 insertions, 35 deletions
diff --git a/ui/buffers.go b/ui/buffers.go
index 79d2cf6..823ece0 100644
--- a/ui/buffers.go
+++ b/ui/buffers.go
@@ -6,8 +6,6 @@ import (
"strings"
"time"
- "git.sr.ht/~taiite/senpai/irc"
-
"github.com/gdamore/tcell/v2"
)
@@ -454,38 +452,6 @@ func (bs *BufferList) DrawHorizontalBufferList(screen tcell.Screen, x0, y0, widt
}
}
-func (bs *BufferList) DrawVerticalMemberList(screen tcell.Screen, x0, y0, width, height int, members []irc.Member, offset *int) {
- st := tcell.StyleDefault
-
- if y0+len(members)-*offset < height {
- *offset = y0 + len(members) - height
- if *offset < 0 {
- *offset = 0
- }
- }
-
- for y := y0; y < y0+height; y++ {
- screen.SetContent(x0, y, 0x2502, nil, st)
- for x := x0 + 1; x < x0+width; x++ {
- screen.SetContent(x, y, ' ', nil, st)
- }
- }
-
- for i, m := range members[*offset:] {
- st = tcell.StyleDefault
- x := x0 + 1
- y := y0 + i
-
- if m.PowerLevel != "" {
- printString(screen, &x, y, Styled(string([]rune(m.PowerLevel)[0]), st.Foreground(tcell.ColorGreen)))
- } else {
- x += 1
- }
- name := truncate(m.Name.Name, width-(x-x0), "\u2026")
- printString(screen, &x, y, Styled(name, st))
- }
-}
-
func (bs *BufferList) DrawTimeline(screen tcell.Screen, x0, y0, nickColWidth int) {
for x := x0; x < x0+bs.tlInnerWidth+nickColWidth+9; x++ {
for y := y0; y < y0+bs.tlHeight; y++ {
diff --git a/ui/ui.go b/ui/ui.go
index db1d8bd..7248844 100644
--- a/ui/ui.go
+++ b/ui/ui.go
@@ -296,7 +296,7 @@ func (ui *UI) Draw(members []irc.Member) {
ui.bs.DrawVerticalBufferList(ui.screen, 0, 0, ui.config.ChanColWidth, h)
}
if ui.config.MemberColWidth != 0 {
- ui.bs.DrawVerticalMemberList(ui.screen, w-ui.config.MemberColWidth, 0, ui.config.MemberColWidth, h, members, &ui.memberOffset)
+ drawVerticalMemberList(ui.screen, w-ui.config.MemberColWidth, 0, ui.config.MemberColWidth, h, members, &ui.memberOffset)
}
if ui.config.ChanColWidth == 0 {
ui.drawStatusBar(ui.config.ChanColWidth, h-3, w-ui.config.MemberColWidth)
@@ -345,3 +345,33 @@ func (ui *UI) drawStatusBar(x0, y, width int) {
printString(ui.screen, &x, y, s.StyledString())
}
+
+func drawVerticalMemberList(screen tcell.Screen, x0, y0, width, height int, members []irc.Member, offset *int) {
+ if y0+len(members)-*offset < height {
+ *offset = y0 + len(members) - height
+ if *offset < 0 {
+ *offset = 0
+ }
+ }
+
+ for y := y0; y < y0+height; y++ {
+ screen.SetContent(x0, y, 0x2502, nil, tcell.StyleDefault)
+ for x := x0 + 1; x < x0+width; x++ {
+ screen.SetContent(x, y, ' ', nil, tcell.StyleDefault)
+ }
+ }
+
+ for i, m := range members[*offset:] {
+ x := x0 + 1
+ y := y0 + i
+
+ if m.PowerLevel != "" {
+ powerLevel := Styled(string([]rune(m.PowerLevel)[0]), tcell.StyleDefault.Foreground(tcell.ColorGreen))
+ printString(screen, &x, y, powerLevel)
+ } else {
+ x += 1
+ }
+ name := truncate(m.Name.Name, width-(x-x0), "\u2026")
+ printString(screen, &x, y, Styled(name, tcell.StyleDefault))
+ }
+}