summaryrefslogtreecommitdiffstats
path: root/Meter.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2020-12-23 20:56:19 +0100
committerBenBE <BenBE@geshi.org>2020-12-26 13:32:29 +0100
commit2c06566405e8708c6c4813e79c74bb64ea61661c (patch)
treef25713f5ab32b5562a756476c2dd3bb1e9d9510e /Meter.c
parentd609c04fe4fa38c35465a152d7dccdf8f64e7a0d (diff)
LoadMeter: dynamically adjust color and total of bar
Change the color and total based on the actual 1min load value: < 1 : green and total of 1.0 < cpu-count : yellow and total of cpu-count else : red and total of 2*cpu-count Closes: #32
Diffstat (limited to 'Meter.c')
-rw-r--r--Meter.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Meter.c b/Meter.c
index 3b3b438d..ad5c1575 100644
--- a/Meter.c
+++ b/Meter.c
@@ -39,6 +39,7 @@ Meter* Meter_new(const struct ProcessList_* pl, int param, const MeterClass* typ
this->param = param;
this->pl = pl;
this->curItems = type->maxItems;
+ this->curAttributes = NULL;
this->values = type->maxItems ? xCalloc(type->maxItems, sizeof(double)) : NULL;
this->total = type->total;
this->caption = xStrdup(type->caption);
@@ -252,7 +253,8 @@ static void BarMeterMode_draw(Meter* this, int x, int y, int w) {
// ...then print the buffer.
offset = 0;
for (uint8_t i = 0; i < this->curItems; i++) {
- RichString_setAttrn(&bar, CRT_colors[Meter_attributes(this)[i]], startPos + offset, startPos + offset + blockSizes[i] - 1);
+ int attr = this->curAttributes ? this->curAttributes[i] : Meter_attributes(this)[i];
+ RichString_setAttrn(&bar, CRT_colors[attr], startPos + offset, startPos + offset + blockSizes[i] - 1);
RichString_printoffnVal(bar, y, x + offset, startPos + offset, MINIMUM(blockSizes[i], w - offset));
offset += blockSizes[i];
offset = CLAMP(offset, 0, w);

© 2014-2024 Faster IT GmbH | imprint | privacy policy