mirror of
https://github.com/bcicen/ctop.git
synced 2024-08-30 18:23:19 +00:00
82 lines
1.5 KiB
Go
82 lines
1.5 KiB
Go
package compact
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/bcicen/ctop/cwidgets"
|
|
"github.com/bcicen/ctop/models"
|
|
ui "github.com/gizak/termui"
|
|
)
|
|
|
|
type NameCol struct {
|
|
*TextCol
|
|
}
|
|
|
|
func (w *NameCol) SetMeta(m models.Meta) {
|
|
if s, ok := m["name"]; ok {
|
|
w.Text = s
|
|
}
|
|
}
|
|
|
|
func (w *NameCol) SetMetrics(m models.Metrics) {
|
|
}
|
|
|
|
type CIDCol struct {
|
|
*TextCol
|
|
}
|
|
|
|
type NetCol struct {
|
|
*TextCol
|
|
}
|
|
|
|
func (w *NetCol) SetMetrics(m models.Metrics) {
|
|
label := fmt.Sprintf("%s / %s", cwidgets.ByteFormat(m.NetRx), cwidgets.ByteFormat(m.NetTx))
|
|
w.Text = label
|
|
}
|
|
|
|
type IOCol struct {
|
|
*TextCol
|
|
}
|
|
|
|
func (w *IOCol) SetMetrics(m models.Metrics) {
|
|
label := fmt.Sprintf("%s / %s", cwidgets.ByteFormat(m.IOBytesRead), cwidgets.ByteFormat(m.IOBytesWrite))
|
|
w.Text = label
|
|
}
|
|
|
|
type PIDCol struct {
|
|
*TextCol
|
|
}
|
|
|
|
func (w *PIDCol) SetMetrics(m models.Metrics) {
|
|
w.Text = fmt.Sprintf("%d", m.Pids)
|
|
}
|
|
|
|
type TextCol struct {
|
|
*ui.Par
|
|
}
|
|
|
|
func NewTextCol(s string) *TextCol {
|
|
p := ui.NewPar(s)
|
|
p.Border = false
|
|
p.Height = 1
|
|
p.Width = 20
|
|
return &TextCol{p}
|
|
}
|
|
|
|
func (w *TextCol) Highlight() {
|
|
w.Bg = ui.ThemeAttr("par.text.fg")
|
|
w.TextFgColor = ui.ThemeAttr("par.text.hi")
|
|
w.TextBgColor = ui.ThemeAttr("par.text.fg")
|
|
}
|
|
|
|
func (w *TextCol) UnHighlight() {
|
|
w.Bg = ui.ThemeAttr("par.text.bg")
|
|
w.TextFgColor = ui.ThemeAttr("par.text.fg")
|
|
w.TextBgColor = ui.ThemeAttr("par.text.bg")
|
|
}
|
|
|
|
//func (w *TextCol) Set(s string) { w.Text = s }
|
|
func (w *TextCol) Reset() { w.Text = "-" }
|
|
func (w *TextCol) SetMeta(models.Meta) {}
|
|
func (w *TextCol) SetMetrics(models.Metrics) {}
|