aboutsummaryrefslogtreecommitdiffstats
path: root/Meter.h
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2016-04-11 13:00:33 +0200
committerDaniel Lange <DLange@git.local>2016-04-11 13:00:33 +0200
commitf75ab6d2c11e8a8e18191b087564aedebbeb96c5 (patch)
tree2a046e11678e798f3f9c7f7af4f9ac205c8d2731 /Meter.h
parent2004bbc3ef28ada3acca05f5d5fa9108121a6784 (diff)
downloaddebian_htop-f75ab6d2c11e8a8e18191b087564aedebbeb96c5.tar.gz
debian_htop-f75ab6d2c11e8a8e18191b087564aedebbeb96c5.tar.bz2
debian_htop-f75ab6d2c11e8a8e18191b087564aedebbeb96c5.zip
Imported Upstream version 1.0.3upstream/1.0.3
Diffstat (limited to 'Meter.h')
-rw-r--r--Meter.h101
1 files changed, 51 insertions, 50 deletions
diff --git a/Meter.h b/Meter.h
index 0882724..2f58b8f 100644
--- a/Meter.h
+++ b/Meter.h
@@ -9,54 +9,59 @@ Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
-#ifndef USE_FUNKY_MODES
-#define USE_FUNKY_MODES 1
-#endif
-
#define METER_BUFFER_LEN 128
#include "ListItem.h"
#include "ProcessList.h"
typedef struct Meter_ Meter;
-typedef struct MeterType_ MeterType;
-typedef struct MeterMode_ MeterMode;
-typedef void(*MeterType_Init)(Meter*);
-typedef void(*MeterType_Done)(Meter*);
-typedef void(*MeterType_SetMode)(Meter*, int);
+typedef void(*Meter_Init)(Meter*);
+typedef void(*Meter_Done)(Meter*);
+typedef void(*Meter_UpdateMode)(Meter*, int);
typedef void(*Meter_SetValues)(Meter*, char*, int);
typedef void(*Meter_Draw)(Meter*, int, int, int);
-struct MeterMode_ {
- Meter_Draw draw;
- const char* uiName;
- int h;
-};
-
-struct MeterType_ {
- Meter_SetValues setValues;
- Object_Display display;
- int mode;
- int items;
- double total;
- int* attributes;
+typedef struct MeterClass_ {
+ ObjectClass super;
+ const Meter_Init init;
+ const Meter_Done done;
+ const Meter_UpdateMode updateMode;
+ const Meter_Draw draw;
+ const Meter_SetValues setValues;
+ const int defaultMode;
+ const double total;
+ const int* attributes;
const char* name;
const char* uiName;
const char* caption;
- MeterType_Init init;
- MeterType_Done done;
- MeterType_SetMode setMode;
- Meter_Draw draw;
-};
+ const char maxItems;
+ char curItems;
+} MeterClass;
+
+#define As_Meter(this_) ((MeterClass*)((this_)->super.klass))
+#define Meter_initFn(this_) As_Meter(this_)->init
+#define Meter_init(this_) As_Meter(this_)->init((Meter*)(this_))
+#define Meter_done(this_) As_Meter(this_)->done((Meter*)(this_))
+#define Meter_updateModeFn(this_) As_Meter(this_)->updateMode
+#define Meter_updateMode(this_, m_) As_Meter(this_)->updateMode((Meter*)(this_), m_)
+#define Meter_drawFn(this_) As_Meter(this_)->draw
+#define Meter_doneFn(this_) As_Meter(this_)->done
+#define Meter_setValues(this_, c_, i_) As_Meter(this_)->setValues((Meter*)(this_), c_, i_)
+#define Meter_defaultMode(this_) As_Meter(this_)->defaultMode
+#define Meter_getItems(this_) As_Meter(this_)->curItems
+#define Meter_setItems(this_, n_) As_Meter(this_)->curItems = (n_)
+#define Meter_attributes(this_) As_Meter(this_)->attributes
+#define Meter_name(this_) As_Meter(this_)->name
+#define Meter_uiName(this_) As_Meter(this_)->uiName
struct Meter_ {
Object super;
+ Meter_Draw draw;
+
char* caption;
- MeterType* type;
int mode;
int param;
- Meter_Draw draw;
void* drawData;
int h;
ProcessList* pl;
@@ -64,24 +69,26 @@ struct Meter_ {
double total;
};
-#ifdef USE_FUNKY_MODES
-typedef struct GraphData_ {
- time_t time;
- double values[METER_BUFFER_LEN];
-} GraphData;
-#endif
+typedef struct MeterMode_ {
+ Meter_Draw draw;
+ const char* uiName;
+ int h;
+} MeterMode;
typedef enum {
CUSTOM_METERMODE = 0,
BAR_METERMODE,
TEXT_METERMODE,
-#ifdef USE_FUNKY_MODES
GRAPH_METERMODE,
LED_METERMODE,
-#endif
LAST_METERMODE
} MeterModeId;
+typedef struct GraphData_ {
+ struct timeval time;
+ double values[METER_BUFFER_LEN];
+} GraphData;
+
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
@@ -90,15 +97,11 @@ typedef enum {
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
-#ifdef DEBUG
-extern char* METER_CLASS;
-#else
-#define METER_CLASS NULL
-#endif
+extern MeterClass Meter_class;
-extern MeterType* Meter_types[];
+extern MeterClass* Meter_types[];
-Meter* Meter_new(ProcessList* pl, int param, MeterType* type);
+Meter* Meter_new(ProcessList* pl, int param, MeterClass* type);
void Meter_delete(Object* cast);
@@ -112,20 +115,18 @@ ListItem* Meter_toListItem(Meter* this);
/* ---------- BarMeterMode ---------- */
-#ifdef USE_FUNKY_MODES
-
/* ---------- GraphMeterMode ---------- */
#define DrawDot(a,y,c) do { attrset(a); mvaddch(y, x+k, c); } while(0)
/* ---------- LEDMeterMode ---------- */
-#endif
+extern MeterMode* Meter_modes[];
-#ifdef USE_FUNKY_MODES
+/* Blank meter */
-#endif
+extern int BlankMeter_attributes[];
-extern MeterMode* Meter_modes[];
+extern MeterClass BlankMeter_class;
#endif

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