summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2022-04-02 12:45:07 +0200
committerDaniel Lange <DLange@git.local>2022-04-02 12:45:07 +0200
commit2b7504b5228bfcab643d020819960ae3e3085575 (patch)
tree181297ca3e57237d1f9cba9f74d3304821b2f58e
parent8b927ba5967fd1a866a98d2fdb8b027630f658ea (diff)
parent5c8670717a70863f22a8ed3c77ab9f9fbe6ee40e (diff)
Merge branch 'full_meter' of cgzones/htop into main
Closes #786
-rw-r--r--Header.c5
-rw-r--r--Meter.c10
2 files changed, 9 insertions, 6 deletions
diff --git a/Header.c b/Header.c
index 976ccf22..8dff89b8 100644
--- a/Header.c
+++ b/Header.c
@@ -194,7 +194,8 @@ void Header_draw(const Header* this) {
for (int y = 0; y < height; y++) {
mvhline(y, 0, ' ', COLS);
}
- const int width = COLS - pad;
+ const int numCols = HeaderLayout_getColumns(this->headerLayout);
+ const int width = COLS - 2 * pad - (numCols - 1);
int x = pad;
float roundingLoss = 0.0F;
@@ -217,6 +218,7 @@ void Header_draw(const Header* this) {
except for multi column meters. */
if (meter->mode == TEXT_METERMODE && !Meter_isMultiColumn(meter)) {
for (int j = 1; j < meter->columnWidthCount; j++) {
+ actualWidth++; /* separator column */
actualWidth += (float)width * HeaderLayout_layouts[this->headerLayout].widths[col + j] / 100.0F;
}
}
@@ -227,6 +229,7 @@ void Header_draw(const Header* this) {
}
x += floorf(colWidth);
+ x++; /* separator column */
}
}
diff --git a/Meter.c b/Meter.c
index 8df85170..164c4d38 100644
--- a/Meter.c
+++ b/Meter.c
@@ -155,7 +155,7 @@ ListItem* Meter_toListItem(const Meter* this, bool moving) {
static void TextMeterMode_draw(Meter* this, int x, int y, int w) {
const char* caption = Meter_getCaption(this);
attrset(CRT_colors[METER_TEXT]);
- mvaddnstr(y, x, caption, w - 1);
+ mvaddnstr(y, x, caption, w);
attrset(CRT_colors[RESET_COLOR]);
int captionLen = strlen(caption);
@@ -166,7 +166,7 @@ static void TextMeterMode_draw(Meter* this, int x, int y, int w) {
RichString_begin(out);
Meter_displayBuffer(this, &out);
- RichString_printoffnVal(out, y, x, 0, w - 1);
+ RichString_printoffnVal(out, y, x, 0, w);
RichString_delete(&out);
}
@@ -176,7 +176,6 @@ static const char BarMeterMode_characters[] = "|#*@$%&.";
static void BarMeterMode_draw(Meter* this, int x, int y, int w) {
const char* caption = Meter_getCaption(this);
- w -= 2;
attrset(CRT_colors[METER_TEXT]);
int captionLen = 3;
mvaddnstr(y, x, caption, captionLen);
@@ -184,10 +183,11 @@ static void BarMeterMode_draw(Meter* this, int x, int y, int w) {
w -= captionLen;
attrset(CRT_colors[BAR_BORDER]);
mvaddch(y, x, '[');
+ w--;
mvaddch(y, x + MAXIMUM(w, 0), ']');
+ w--;
attrset(CRT_colors[RESET_COLOR]);
- w--;
x++;
if (w < 1)
@@ -329,7 +329,7 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
data->values[nValues - 1] = value;
}
- int i = nValues - (w * 2) + 2, k = 0;
+ int i = nValues - (w * 2), k = 0;
if (i < 0) {
k = -i / 2;
i = 0;

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