add static width for specific columns

This commit is contained in:
Bradley Cicenas 2017-03-12 09:58:56 +00:00
parent 77c3d00e67
commit 2134110224
3 changed files with 33 additions and 15 deletions

View File

@ -12,7 +12,7 @@ type CompactHeader struct {
}
func NewCompactHeader() *CompactHeader {
fields := []string{"", "NAME", "CID", "CPU", "MEM", "NET RX/TX", "IO R/W", "Pids"}
fields := []string{"", "NAME", "CID", "CPU", "MEM", "NET RX/TX", "IO R/W", "PIDS"}
ch := &CompactHeader{}
ch.Height = 2
for _, f := range fields {
@ -27,13 +27,13 @@ func (ch *CompactHeader) GetHeight() int {
func (ch *CompactHeader) SetWidth(w int) {
x := ch.X
autoWidth := calcWidth(w, 7)
autoWidth := calcWidth(w)
for n, col := range ch.pars {
// set status column to static width
if n == 0 {
// set column to static width
if colWidths[n] != 0 {
col.SetX(x)
col.SetWidth(statusWidth)
x += statusWidth
col.SetWidth(colWidths[n])
x += colWidths[n]
continue
}
col.SetX(x)

View File

@ -99,13 +99,12 @@ func (row *Compact) SetWidth(width int) {
return
}
x := row.X
autoWidth := calcWidth(width, 7)
autoWidth := calcWidth(width)
for n, col := range row.all() {
// set status column to static width
if n == 0 {
if colWidths[n] != 0 {
col.SetX(x)
col.SetWidth(statusWidth)
x += statusWidth
col.SetWidth(colWidths[n])
x += colWidths[n]
continue
}
col.SetX(x)

View File

@ -9,10 +9,29 @@ import (
const colSpacing = 1
// Calculate per-column width, given total width and number of items
func calcWidth(width, items int) int {
spacing := colSpacing * items
return (width - statusWidth - spacing) / items
// per-column width. 0 == auto width
var colWidths = []int{
3, // status
0, // name
0, // cid
0, // cpu
0, // memory
0, // net
0, // io
4, // pids
}
// Calculate per-column width, given total width
func calcWidth(width int) int {
spacing := colSpacing * len(colWidths)
var staticCols int
for _, w := range colWidths {
width -= w
if w == 0 {
staticCols += 1
}
}
return (width - spacing) / staticCols
}
func centerParText(p *ui.Par) {