better color for the bar

This commit is contained in:
smayzy 2026-01-01 00:26:27 +01:00
parent 8fa46b3fbc
commit 7d20fca1ab

View File

@ -152,30 +152,41 @@ void win_float(WINDOW *lwin, float data, int digits, int use_color, int color) {
wrefresh(lwin); wrefresh(lwin);
} }
void win_bar(WINDOW *lwin, int data, int data_max, int use_color, int color) { void win_bar(WINDOW *lwin, int data, int data_max, int use_color) {
int lwiny, lwinx; int lwiny, lwinx;
getmaxyx(lwin, lwiny, lwinx); getmaxyx(lwin, lwiny, lwinx);
win_clear(lwin); win_clear(lwin);
if (use_color) wattron(lwin, COLOR_PAIR(color));
int bar_width = lwinx - 4; int bar_width = lwinx - 4;
int bar_height = lwiny - 2; int bar_height = lwiny - 2;
int filled = (data * bar_width) / data_max; int filled = (data * bar_width) / data_max;
int yellow = (75 * bar_width) / 100;
int red = (90 * bar_width) / 100;
for (int y = 1; y <= bar_height; y++) { for (int y = 1; y <= bar_height; y++) {
for (int x = 0; x < bar_width; x++) { for (int x = 0; x < filled; x++) {
if (x < filled) if (use_color) {
mvwaddch(lwin, y, 2 + x, ACS_CKBOARD); if (x < yellow)
wattron(lwin, COLOR_PAIR(3));
else if (x < red)
wattron(lwin, COLOR_PAIR(2));
else
wattron(lwin, COLOR_PAIR(1));
}
mvwaddch(lwin, y, 2 + x, ACS_CKBOARD);
} }
} }
char buf[16]; char buf[16];
snprintf(buf, sizeof(buf), "%d rpm", data); snprintf(buf, sizeof(buf), "%d W", data);
mvwprintw(lwin, lwiny / 2 - 1, 3, "%s", buf); mvwprintw(lwin, lwiny / 2 - 1, 3, "%s", buf);
if (use_color) wattroff(lwin, COLOR_PAIR(color)); if (use_color) {
wattroff(lwin, COLOR_PAIR(3));
wattroff(lwin, COLOR_PAIR(2));
wattroff(lwin, COLOR_PAIR(1));
}
wrefresh(lwin); wrefresh(lwin);
} }
@ -306,7 +317,7 @@ int main(int argc, char **argv) {
win_int(win[0], speed, 3, use_color, color_high(speed, lspeed, hspeed)); win_int(win[0], speed, 3, use_color, color_high(speed, lspeed, hspeed));
win_int(win[1], rpm, 4, use_color, color_high(rpm, lrpm, hrpm)); win_int(win[1], rpm, 4, use_color, color_high(rpm, lrpm, hrpm));
win_float(win[3], tq, 3, use_color, color_high(tq, ltq, htq)); win_float(win[3], tq, 3, use_color, color_high(tq, ltq, htq));
win_bar(win[4], power, hpower, use_color, color_high(power, lpower, hpower)); win_bar(win[4], power, hpower, use_color);
win_float(win[5], eff, 5, use_color, color_high(eff, leff, heff)); win_float(win[5], eff, 5, use_color, color_high(eff, leff, heff));
t100 = now; t100 = now;
} }