diff options
author | Daniel Lange <DLange@git.local> | 2016-04-11 13:00:20 +0200 |
---|---|---|
committer | Daniel Lange <DLange@git.local> | 2016-04-11 13:00:20 +0200 |
commit | ea859f50d9438bc61ae96721a4d255b49de78653 (patch) | |
tree | bfb52a5f403ad1e86c562b2f4d608d1268fe8fcf /AvailableMetersListBox.c | |
parent | 266ab52b3a741a58fb17c48b0f7939d7c5d266de (diff) | |
download | debian_htop-ea859f50d9438bc61ae96721a4d255b49de78653.tar.gz debian_htop-ea859f50d9438bc61ae96721a4d255b49de78653.tar.bz2 debian_htop-ea859f50d9438bc61ae96721a4d255b49de78653.zip |
Imported Upstream version 0.6.2upstream/0.6.2
Diffstat (limited to 'AvailableMetersListBox.c')
-rw-r--r-- | AvailableMetersListBox.c | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/AvailableMetersListBox.c b/AvailableMetersListBox.c index 757cd59..88011ba 100644 --- a/AvailableMetersListBox.c +++ b/AvailableMetersListBox.c @@ -35,19 +35,23 @@ AvailableMetersListBox* AvailableMetersListBox_new(Settings* settings, ListBox* super->eventHandler = AvailableMetersListBox_EventHandler; ListBox_setHeader(super, "Available meters"); - ListBox_add(super, (Object*) ListItem_new("Swap", 0)); - ListBox_add(super, (Object*) ListItem_new("Memory", 0)); - ListBox_add(super, (Object*) ListItem_new("Clock", 0)); - ListBox_add(super, (Object*) ListItem_new("Load", 0)); - ListBox_add(super, (Object*) ListItem_new("LoadAverage", 0)); - ListBox_add(super, (Object*) ListItem_new("Uptime", 0)); - ListBox_add(super, (Object*) ListItem_new("Tasks", 0)); - if (settings->pl->processorCount > 1) - ListBox_add(super, (Object*) ListItem_new("CPUAverage", 0)); - for (int i = 1; i <= settings->pl->processorCount; i++) { - char buffer[50]; - sprintf(buffer, "CPU(%d)", i); - ListBox_add(super, (Object*) ListItem_new(buffer, 0)); + for (int i = 1; Meter_types[i]; i++) { + MeterType* type = Meter_types[i]; + if (type != &CPUMeter) { + ListBox_add(super, (Object*) ListItem_new(type->uiName, i << 16)); + } + } + MeterType* type = &CPUMeter; + int processors = settings->pl->processorCount; + if (processors > 1) { + ListBox_add(super, (Object*) ListItem_new("CPU average", 0)); + for (int i = 1; i <= processors; i++) { + char buffer[50]; + sprintf(buffer, "%s %d", type->uiName, i); + ListBox_add(super, (Object*) ListItem_new(buffer, i)); + } + } else { + ListBox_add(super, (Object*) ListItem_new("CPU", 1)); } return this; } @@ -60,10 +64,8 @@ void AvailableMetersListBox_delete(Object* object) { } /* private */ -inline void AvailableMetersListBox_addHeader(Header* header, ListBox* lb, char* name, HeaderSide side) { - Header_createMeter(header, name, side); - int i = Header_size(header, side) - 1; - Meter* meter = (Meter*) Header_getMeter(header, i, side); +inline void AvailableMetersListBox_addHeader(Header* header, ListBox* lb, MeterType* type, int param, HeaderSide side) { + Meter* meter = (Meter*) Header_addMeter(header, type, param, side); ListBox_add(lb, (Object*) Meter_toListItem(meter)); } @@ -72,7 +74,8 @@ HandlerResult AvailableMetersListBox_EventHandler(ListBox* super, int ch) { Header* header = this->settings->header; ListItem* selected = (ListItem*) ListBox_getSelected(super); - char* name = selected->value; + int param = selected->key & 0xff; + int type = selected->key >> 16; HandlerResult result = IGNORED; switch(ch) { @@ -80,7 +83,7 @@ HandlerResult AvailableMetersListBox_EventHandler(ListBox* super, int ch) { case 'l': case 'L': { - AvailableMetersListBox_addHeader(header, this->leftBox, name, LEFT_HEADER); + AvailableMetersListBox_addHeader(header, this->leftBox, Meter_types[type], param, LEFT_HEADER); result = HANDLED; break; } @@ -88,7 +91,7 @@ HandlerResult AvailableMetersListBox_EventHandler(ListBox* super, int ch) { case 'r': case 'R': { - AvailableMetersListBox_addHeader(header, this->rightBox, name, RIGHT_HEADER); + AvailableMetersListBox_addHeader(header, this->rightBox, Meter_types[type], param, RIGHT_HEADER); result = HANDLED; break; } |