mirror of
https://github.com/bcicen/ctop.git
synced 2024-08-30 18:23:19 +00:00
67 lines
1.0 KiB
Go
67 lines
1.0 KiB
Go
package compact
|
|
|
|
import (
|
|
ui "github.com/gizak/termui"
|
|
)
|
|
|
|
type CompactHeader struct {
|
|
X, Y int
|
|
Width int
|
|
Height int
|
|
cols []CompactCol
|
|
widths []int
|
|
pars []*ui.Par
|
|
}
|
|
|
|
func NewCompactHeader() *CompactHeader {
|
|
return &CompactHeader{
|
|
X: rowPadding,
|
|
Height: 2,
|
|
}
|
|
}
|
|
|
|
func (row *CompactHeader) GetHeight() int {
|
|
return row.Height
|
|
}
|
|
|
|
func (row *CompactHeader) SetWidths(totalWidth int, widths []int) {
|
|
x := row.X
|
|
|
|
for n, w := range row.pars {
|
|
w.SetX(x)
|
|
w.SetWidth(widths[n])
|
|
x += widths[n] + colSpacing
|
|
}
|
|
row.Width = totalWidth
|
|
}
|
|
|
|
func (row *CompactHeader) SetX(x int) {
|
|
row.X = x
|
|
}
|
|
|
|
func (row *CompactHeader) SetY(y int) {
|
|
for _, p := range row.pars {
|
|
p.SetY(y)
|
|
}
|
|
row.Y = y
|
|
}
|
|
|
|
func (row *CompactHeader) Buffer() ui.Buffer {
|
|
buf := ui.NewBuffer()
|
|
for _, p := range row.pars {
|
|
buf.Merge(p.Buffer())
|
|
}
|
|
return buf
|
|
}
|
|
|
|
func (row *CompactHeader) clearFieldPars() {
|
|
row.pars = []*ui.Par{}
|
|
}
|
|
|
|
func (row *CompactHeader) addFieldPar(s string) {
|
|
p := ui.NewPar(s)
|
|
p.Height = row.Height
|
|
p.Border = false
|
|
row.pars = append(row.pars, p)
|
|
}
|