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++ {
+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+}