aboutsummaryrefslogtreecommitdiffstats
path: root/Meter.c
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2016-04-11 13:00:22 +0200
committerDaniel Lange <DLange@git.local>2016-04-11 13:00:22 +0200
commitc74c38760df69bb87e93dff18cf91464e5d02f37 (patch)
treeee2a19a0ef3a808bdfc8c1e6a00e96d79966dcb0 /Meter.c
parent9379132a8234eeedf62d37ef57713e52c12db6ab (diff)
downloaddebian_htop-c74c38760df69bb87e93dff18cf91464e5d02f37.tar.gz
debian_htop-c74c38760df69bb87e93dff18cf91464e5d02f37.tar.bz2
debian_htop-c74c38760df69bb87e93dff18cf91464e5d02f37.zip
Imported Upstream version 0.8.1upstream/0.8.1
Diffstat (limited to 'Meter.c')
-rw-r--r--Meter.c98
1 files changed, 51 insertions, 47 deletions
diff --git a/Meter.c b/Meter.c
index 0e9ef05..eec5ca5 100644
--- a/Meter.c
+++ b/Meter.c
@@ -18,6 +18,7 @@ in the source distribution for its full text.
#include "ListItem.h"
#include "String.h"
#include "ProcessList.h"
+#include "RichString.h"
#include "debug.h"
#include <assert.h>
@@ -95,8 +96,10 @@ typedef enum {
#include "TasksMeter.h"
#include "LoadAverageMeter.h"
#include "UptimeMeter.h"
+#include "BatteryMeter.h"
#include "ClockMeter.h"
+
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
@@ -119,49 +122,11 @@ MeterType* Meter_types[] = {
&SwapMeter,
&TasksMeter,
&UptimeMeter,
+ &BatteryMeter,
&AllCPUsMeter,
NULL
};
-static MeterMode BarMeterMode = {
- .uiName = "Bar",
- .h = 1,
- .draw = BarMeterMode_draw,
-};
-
-static MeterMode TextMeterMode = {
- .uiName = "Text",
- .h = 1,
- .draw = TextMeterMode_draw,
-};
-
-#ifdef USE_FUNKY_MODES
-
-static MeterMode GraphMeterMode = {
- .uiName = "Graph",
- .h = 3,
- .draw = GraphMeterMode_draw,
-};
-
-static MeterMode LEDMeterMode = {
- .uiName = "LED",
- .h = 3,
- .draw = LEDMeterMode_draw,
-};
-
-#endif
-
-MeterMode* Meter_modes[] = {
- NULL,
- &BarMeterMode,
- &TextMeterMode,
-#ifdef USE_FUNKY_MODES
- &GraphMeterMode,
- &LEDMeterMode,
-#endif
- NULL
-};
-
static RichString Meter_stringBuffer;
Meter* Meter_new(ProcessList* pl, int param, MeterType* type) {
@@ -253,7 +218,7 @@ ListItem* Meter_toListItem(Meter* this) {
/* ---------- TextMeterMode ---------- */
-void TextMeterMode_draw(Meter* this, int x, int y, int w) {
+static void TextMeterMode_draw(Meter* this, int x, int y, int w) {
MeterType* type = this->type;
char buffer[METER_BUFFER_LEN];
type->setValues(this, buffer, METER_BUFFER_LEN - 1);
@@ -266,22 +231,22 @@ void TextMeterMode_draw(Meter* this, int x, int y, int w) {
Meter_displayToStringBuffer(this, buffer);
mvhline(y, x, ' ', CRT_colors[DEFAULT_COLOR]);
attrset(CRT_colors[RESET_COLOR]);
- mvaddchstr(y, x, Meter_stringBuffer.chstr);
+ RichString_printVal(Meter_stringBuffer, y, x);
}
/* ---------- BarMeterMode ---------- */
static char BarMeterMode_characters[] = "|#*@$%&";
-void BarMeterMode_draw(Meter* this, int x, int y, int w) {
+static void BarMeterMode_draw(Meter* this, int x, int y, int w) {
MeterType* type = this->type;
char buffer[METER_BUFFER_LEN];
type->setValues(this, buffer, METER_BUFFER_LEN - 1);
w -= 2;
attrset(CRT_colors[METER_TEXT]);
- mvaddstr(y, x, this->caption);
- int captionLen = strlen(this->caption);
+ int captionLen = 3;
+ mvaddnstr(y, x, this->caption, captionLen);
x += captionLen;
w -= captionLen;
attrset(CRT_colors[BAR_BORDER]);
@@ -361,7 +326,7 @@ static int GraphMeterMode_colors[21] = {
static char* GraphMeterMode_characters = "^`'-.,_~'`-.,_~'`-.,_";
-void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
+static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
if (!this->drawBuffer) this->drawBuffer = calloc(sizeof(double), METER_BUFFER_LEN);
double* drawBuffer = (double*) this->drawBuffer;
@@ -407,7 +372,7 @@ static void LEDMeterMode_drawDigit(int x, int y, int n) {
mvaddstr(y+i, x, LEDMeterMode_digits[i][n]);
}
-void LEDMeterMode_draw(Meter* this, int x, int y, int w) {
+static void LEDMeterMode_draw(Meter* this, int x, int y, int w) {
MeterType* type = this->type;
char buffer[METER_BUFFER_LEN];
type->setValues(this, buffer, METER_BUFFER_LEN - 1);
@@ -418,7 +383,7 @@ void LEDMeterMode_draw(Meter* this, int x, int y, int w) {
mvaddstr(y+2, x, this->caption);
int xx = x + strlen(this->caption);
for (int i = 0; i < Meter_stringBuffer.len; i++) {
- char c = Meter_stringBuffer.chstr[i];
+ char c = RichString_getCharVal(Meter_stringBuffer, i);
if (c >= '0' && c <= '9') {
LEDMeterMode_drawDigit(xx, y, c-48);
xx += 4;
@@ -431,3 +396,42 @@ void LEDMeterMode_draw(Meter* this, int x, int y, int w) {
}
#endif
+
+static MeterMode BarMeterMode = {
+ .uiName = "Bar",
+ .h = 1,
+ .draw = BarMeterMode_draw,
+};
+
+static MeterMode TextMeterMode = {
+ .uiName = "Text",
+ .h = 1,
+ .draw = TextMeterMode_draw,
+};
+
+#ifdef USE_FUNKY_MODES
+
+static MeterMode GraphMeterMode = {
+ .uiName = "Graph",
+ .h = 3,
+ .draw = GraphMeterMode_draw,
+};
+
+static MeterMode LEDMeterMode = {
+ .uiName = "LED",
+ .h = 3,
+ .draw = LEDMeterMode_draw,
+};
+
+#endif
+
+MeterMode* Meter_modes[] = {
+ NULL,
+ &BarMeterMode,
+ &TextMeterMode,
+#ifdef USE_FUNKY_MODES
+ &GraphMeterMode,
+ &LEDMeterMode,
+#endif
+ NULL
+};

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