aboutsummaryrefslogtreecommitdiffstats
path: root/Header.c
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2016-04-11 13:00:29 +0200
committerDaniel Lange <DLange@git.local>2016-04-11 13:00:29 +0200
commiteaf11cc12a1aa4b050a8a1e7ea3770d3d9c81e95 (patch)
tree833f3fae6e3604a439f909c245a6e35f574997d7 /Header.c
parent283707c5e5bc436b78ea23bf5500cb6b16a01148 (diff)
downloaddebian_htop-eaf11cc12a1aa4b050a8a1e7ea3770d3d9c81e95.tar.gz
debian_htop-eaf11cc12a1aa4b050a8a1e7ea3770d3d9c81e95.tar.bz2
debian_htop-eaf11cc12a1aa4b050a8a1e7ea3770d3d9c81e95.zip
Imported Upstream version 1.0upstream/1.0
Diffstat (limited to 'Header.c')
-rw-r--r--Header.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/Header.c b/Header.c
index 998e9c6..9a14b15 100644
--- a/Header.c
+++ b/Header.c
@@ -1,6 +1,6 @@
/*
htop - Header.c
-(C) 2004-2010 Hisham H. Muhammad
+(C) 2004-2011 Hisham H. Muhammad
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
@@ -10,6 +10,7 @@ in the source distribution for its full text.
#include "debug.h"
#include <assert.h>
+#include <time.h>
/*{
@@ -34,7 +35,7 @@ typedef struct Header_ {
#endif
Header* Header_new(ProcessList* pl) {
- Header* this = malloc(sizeof(Header));
+ Header* this = calloc(sizeof(Header), 1);
this->leftMeters = Vector_new(METER_CLASS, true, DEFAULT_SIZE, NULL);
this->rightMeters = Vector_new(METER_CLASS, true, DEFAULT_SIZE, NULL);
this->margin = true;
@@ -123,8 +124,16 @@ MeterModeId Header_readMeterMode(Header* this, int i, HeaderSide side) {
return meter->mode;
}
-void Header_defaultMeters(Header* this) {
- Vector_add(this->leftMeters, Meter_new(this->pl, 0, &AllCPUsMeter));
+void Header_defaultMeters(Header* this, int cpuCount) {
+ if (cpuCount > 8) {
+ Vector_add(this->leftMeters, Meter_new(this->pl, 0, &LeftCPUs2Meter));
+ Vector_add(this->rightMeters, Meter_new(this->pl, 0, &RightCPUs2Meter));
+ } else if (cpuCount > 4) {
+ Vector_add(this->leftMeters, Meter_new(this->pl, 0, &LeftCPUsMeter));
+ Vector_add(this->rightMeters, Meter_new(this->pl, 0, &RightCPUsMeter));
+ } else {
+ Vector_add(this->leftMeters, Meter_new(this->pl, 0, &AllCPUsMeter));
+ }
Vector_add(this->leftMeters, Meter_new(this->pl, 0, &MemoryMeter));
Vector_add(this->leftMeters, Meter_new(this->pl, 0, &SwapMeter));
Vector_add(this->rightMeters, Meter_new(this->pl, 0, &TasksMeter));
@@ -132,7 +141,20 @@ void Header_defaultMeters(Header* this) {
Vector_add(this->rightMeters, Meter_new(this->pl, 0, &UptimeMeter));
}
-void Header_draw(Header* this) {
+void Header_reinit(Header* this) {
+ for (int i = 0; i < Vector_size(this->leftMeters); i++) {
+ Meter* meter = (Meter*) Vector_get(this->leftMeters, i);
+ if (meter->type->init)
+ meter->type->init(meter);
+ }
+ for (int i = 0; i < Vector_size(this->rightMeters); i++) {
+ Meter* meter = (Meter*) Vector_get(this->rightMeters, i);
+ if (meter->type->init)
+ meter->type->init(meter);
+ }
+}
+
+void Header_draw(const Header* this) {
int height = this->height;
int pad = this->pad;

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