diff options
author | Hubert Hirtz <hubert@hirtz.pm> | 2021-10-19 21:31:00 +0200 |
---|---|---|
committer | Hubert Hirtz <hubert@hirtz.pm> | 2021-10-19 21:31:00 +0200 |
commit | aa0fb28ab5bce9c45f701fc058e2571db40bc459 (patch) | |
tree | a007becc6b102278460a9476375d250705631f42 /ui | |
parent | Only show buffer numbers when necessary (diff) |
Cleanup drawVerticalMemberList
Diffstat (limited to 'ui')
-rw-r--r-- | ui/buffers.go | 34 | ||||
-rw-r--r-- | ui/ui.go | 32 |
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++ { @@ -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)) + } +} |