commit aa0fb28
Hubert Hirtz
·
2021-10-19 19:31:00 +0000 UTC
parent ce78dab
Cleanup drawVerticalMemberList
2 files changed,
+31,
-35
+0,
-34
1@@ -6,8 +6,6 @@ import (
2 "strings"
3 "time"
4
5- "git.sr.ht/~taiite/senpai/irc"
6-
7 "github.com/gdamore/tcell/v2"
8 )
9
10@@ -454,38 +452,6 @@ func (bs *BufferList) DrawHorizontalBufferList(screen tcell.Screen, x0, y0, widt
11 }
12 }
13
14-func (bs *BufferList) DrawVerticalMemberList(screen tcell.Screen, x0, y0, width, height int, members []irc.Member, offset *int) {
15- st := tcell.StyleDefault
16-
17- if y0+len(members)-*offset < height {
18- *offset = y0 + len(members) - height
19- if *offset < 0 {
20- *offset = 0
21- }
22- }
23-
24- for y := y0; y < y0+height; y++ {
25- screen.SetContent(x0, y, 0x2502, nil, st)
26- for x := x0 + 1; x < x0+width; x++ {
27- screen.SetContent(x, y, ' ', nil, st)
28- }
29- }
30-
31- for i, m := range members[*offset:] {
32- st = tcell.StyleDefault
33- x := x0 + 1
34- y := y0 + i
35-
36- if m.PowerLevel != "" {
37- printString(screen, &x, y, Styled(string([]rune(m.PowerLevel)[0]), st.Foreground(tcell.ColorGreen)))
38- } else {
39- x += 1
40- }
41- name := truncate(m.Name.Name, width-(x-x0), "\u2026")
42- printString(screen, &x, y, Styled(name, st))
43- }
44-}
45-
46 func (bs *BufferList) DrawTimeline(screen tcell.Screen, x0, y0, nickColWidth int) {
47 for x := x0; x < x0+bs.tlInnerWidth+nickColWidth+9; x++ {
48 for y := y0; y < y0+bs.tlHeight; y++ {
M
ui/ui.go
+31,
-1
1@@ -296,7 +296,7 @@ func (ui *UI) Draw(members []irc.Member) {
2 ui.bs.DrawVerticalBufferList(ui.screen, 0, 0, ui.config.ChanColWidth, h)
3 }
4 if ui.config.MemberColWidth != 0 {
5- ui.bs.DrawVerticalMemberList(ui.screen, w-ui.config.MemberColWidth, 0, ui.config.MemberColWidth, h, members, &ui.memberOffset)
6+ drawVerticalMemberList(ui.screen, w-ui.config.MemberColWidth, 0, ui.config.MemberColWidth, h, members, &ui.memberOffset)
7 }
8 if ui.config.ChanColWidth == 0 {
9 ui.drawStatusBar(ui.config.ChanColWidth, h-3, w-ui.config.MemberColWidth)
10@@ -345,3 +345,33 @@ func (ui *UI) drawStatusBar(x0, y, width int) {
11
12 printString(ui.screen, &x, y, s.StyledString())
13 }
14+
15+func drawVerticalMemberList(screen tcell.Screen, x0, y0, width, height int, members []irc.Member, offset *int) {
16+ if y0+len(members)-*offset < height {
17+ *offset = y0 + len(members) - height
18+ if *offset < 0 {
19+ *offset = 0
20+ }
21+ }
22+
23+ for y := y0; y < y0+height; y++ {
24+ screen.SetContent(x0, y, 0x2502, nil, tcell.StyleDefault)
25+ for x := x0 + 1; x < x0+width; x++ {
26+ screen.SetContent(x, y, ' ', nil, tcell.StyleDefault)
27+ }
28+ }
29+
30+ for i, m := range members[*offset:] {
31+ x := x0 + 1
32+ y := y0 + i
33+
34+ if m.PowerLevel != "" {
35+ powerLevel := Styled(string([]rune(m.PowerLevel)[0]), tcell.StyleDefault.Foreground(tcell.ColorGreen))
36+ printString(screen, &x, y, powerLevel)
37+ } else {
38+ x += 1
39+ }
40+ name := truncate(m.Name.Name, width-(x-x0), "\u2026")
41+ printString(screen, &x, y, Styled(name, tcell.StyleDefault))
42+ }
43+}