/
columnheaders.go
60 lines (49 loc) · 1.07 KB
/
columnheaders.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package widgets
import (
"strings"
"github.com/ambientsound/pms/songlist"
"github.com/ambientsound/pms/style"
"github.com/gdamore/tcell/v2"
"github.com/gdamore/tcell/v2/views"
)
type ColumnheadersWidget struct {
columns songlist.Columns
view views.View
style.Styled
views.WidgetWatchers
}
func NewColumnheadersWidget() (c *ColumnheadersWidget) {
c = &ColumnheadersWidget{}
c.columns = make(songlist.Columns, 0)
return
}
func (c *ColumnheadersWidget) SetColumns(cols songlist.Columns) {
c.columns = cols
}
func (c *ColumnheadersWidget) Draw() {
x := 0
y := 0
for i := range c.columns {
col := c.columns[i]
title := []rune(strings.Title(col.Tag()))
p := 0
for _, r := range title {
c.view.SetContent(x+p, y, r, nil, c.Style("header"))
p++
}
x += col.Width()
}
}
func (c *ColumnheadersWidget) SetView(v views.View) {
c.view = v
}
func (c *ColumnheadersWidget) Size() (int, int) {
x, y := c.view.Size()
y = 1
return x, y
}
func (w *ColumnheadersWidget) Resize() {
}
func (w *ColumnheadersWidget) HandleEvent(ev tcell.Event) bool {
return false
}