From 56975bc80a20ab00ae0bbe30233e8e16f2b9e4d0 Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Thu, 12 Sep 2019 20:01:08 -0400 Subject: [PATCH] Improve bargraph view so bar colors are configurable Inspired by #624 Update the view object so that widget developers can configure bar color --- modules/bargraph/widget.go | 5 +++-- modules/resourceusage/widget.go | 3 +++ view/bargraph.go | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/bargraph/widget.go b/modules/bargraph/widget.go index 42e98c72..506bfa32 100644 --- a/modules/bargraph/widget.go +++ b/modules/bargraph/widget.go @@ -50,8 +50,9 @@ func MakeGraph(widget *Widget) { barTime = barTime.Add(time.Duration(time.Minute)) bar := view.Bar{ - Label: barTime.Format("15:04"), - Percent: rand.Intn(100-5) + 5, + Label: barTime.Format("15:04"), + Percent: rand.Intn(100-5) + 5, + LabelColor: "red", } stats[i] = bar diff --git a/modules/resourceusage/widget.go b/modules/resourceusage/widget.go index bfdf55d9..2b5ebc56 100644 --- a/modules/resourceusage/widget.go +++ b/modules/resourceusage/widget.go @@ -58,6 +58,7 @@ func MakeGraph(widget *Widget) { Label: fmt.Sprint(i), Percent: int(stat), ValueLabel: fmt.Sprintf("%d%%", int(stat)), + LabelColor: "red", } stats[i] = bar @@ -81,6 +82,7 @@ func MakeGraph(widget *Widget) { Label: "Mem", Percent: int(memInfo.UsedPercent), ValueLabel: fmt.Sprintf("%s/%s", usedMemLabel, totalMemLabel), + LabelColor: "green", } swapIndex := len(cpuStats) + 1 @@ -101,6 +103,7 @@ func MakeGraph(widget *Widget) { Label: "Swp", Percent: int(swapPercent * 100), ValueLabel: fmt.Sprintf("%s/%s", usedSwapLabel, totalSwapLabel), + LabelColor: "yellow", } widget.BarGraph.BuildBars(stats[:]) diff --git a/view/bargraph.go b/view/bargraph.go index 74507317..09b20bb4 100644 --- a/view/bargraph.go +++ b/view/bargraph.go @@ -24,6 +24,7 @@ type Bar struct { Label string Percent int ValueLabel string + LabelColor string } // NewBarGraph creates and returns an instance of BarGraph @@ -78,9 +79,10 @@ func BuildStars(data []Bar, maxStars int, starChar string) string { //write the line buffer.WriteString( fmt.Sprintf( - "%s%s[[red]%s[white]%s] %s\n", + "%s%s[[%s]%s[white]%s] %s\n", bar.Label, strings.Repeat(" ", longestLabel-len(bar.Label)), + bar.LabelColor, strings.Repeat(starChar, starCount), strings.Repeat(" ", maxStars-starCount), label,