summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2008-03-09 08:58:38 +0000
committerHisham Muhammad <hisham@gobolinux.org>2008-03-09 08:58:38 +0000
commitda23c8c5a188324455c8f417293c10d85f65cb63 (patch)
treed7a4b8cb0af705de6650e20e00ba3da04d84b27f
parent12f4f09e6ed288bdedc86e4ef22f3cc34f0e787a (diff)
Clean up headers by using 'static' whenever possible.
Reduces resulting code size.
-rw-r--r--AffinityPanel.c34
-rw-r--r--AffinityPanel.h2
-rw-r--r--AvailableColumnsPanel.c44
-rw-r--r--AvailableColumnsPanel.h4
-rw-r--r--AvailableMetersPanel.c72
-rw-r--r--AvailableMetersPanel.h4
-rw-r--r--CPUMeter.c68
-rw-r--r--CPUMeter.h18
-rw-r--r--CRT.c22
-rw-r--r--CRT.h4
-rw-r--r--CategoriesPanel.c84
-rw-r--r--CategoriesPanel.h12
-rw-r--r--CheckItem.c40
-rw-r--r--CheckItem.h4
-rw-r--r--ClockMeter.c14
-rw-r--r--ClockMeter.h2
-rw-r--r--ColorsPanel.c39
-rw-r--r--ColorsPanel.h5
-rw-r--r--ColumnsPanel.c91
-rw-r--r--ColumnsPanel.h3
-rw-r--r--DisplayOptionsPanel.c49
-rw-r--r--DisplayOptionsPanel.h5
-rw-r--r--Hashtable.c9
-rw-r--r--Hashtable.h6
-rw-r--r--ListItem.c30
-rw-r--r--ListItem.h4
-rw-r--r--LoadAverageMeter.c56
-rw-r--r--LoadAverageMeter.h12
-rw-r--r--MemoryMeter.c28
-rw-r--r--MemoryMeter.h4
-rw-r--r--Meter.c86
-rw-r--r--Meter.h18
-rw-r--r--MetersPanel.c40
-rw-r--r--MetersPanel.h4
-rw-r--r--Object.c2
-rw-r--r--Object.h2
-rw-r--r--Process.c172
-rw-r--r--Process.h16
-rw-r--r--ProcessList.c50
-rw-r--r--ProcessList.h13
-rw-r--r--ScreenManager.c6
-rw-r--r--ScreenManager.h2
-rw-r--r--Settings.c70
-rw-r--r--Settings.h6
-rw-r--r--SignalItem.c24
-rw-r--r--SignalItem.h6
-rw-r--r--SignalsPanel.c64
-rw-r--r--SignalsPanel.h4
-rw-r--r--String.c55
-rw-r--r--String.h16
-rw-r--r--SwapMeter.c28
-rw-r--r--SwapMeter.h4
-rw-r--r--TasksMeter.c28
-rw-r--r--TasksMeter.h4
-rw-r--r--TraceScreen.c2
-rw-r--r--TraceScreen.h2
-rw-r--r--UptimeMeter.c26
-rw-r--r--UptimeMeter.h2
-rw-r--r--UsersTable.c4
-rw-r--r--UsersTable.h2
-rw-r--r--Vector.c12
-rw-r--r--Vector.h8
-rw-r--r--htop.c10
-rw-r--r--htop.h10
64 files changed, 660 insertions, 907 deletions
diff --git a/AffinityPanel.c b/AffinityPanel.c
index 007b0590..bfd10e28 100644
--- a/AffinityPanel.c
+++ b/AffinityPanel.c
@@ -7,6 +7,23 @@
#include "debug.h"
#include <assert.h>
+static HandlerResult AffinityPanel_eventHandler(Panel* this, int ch) {
+ HandlerResult result = IGNORED;
+ CheckItem* selected = (CheckItem*) Panel_getSelected(this);
+ switch(ch) {
+ case ' ':
+ CheckItem_set(selected, ! (CheckItem_get(selected)) );
+ result = HANDLED;
+ break;
+ case 0x0a:
+ case 0x0d:
+ case KEY_ENTER:
+ result = BREAK_LOOP;
+ break;
+ }
+ return result;
+}
+
Panel* AffinityPanel_new(int processorCount, unsigned long mask) {
Panel* this = Panel_new(1, 1, 1, 1, CHECKITEM_CLASS, true, ListItem_compare);
this->eventHandler = AffinityPanel_eventHandler;
@@ -29,20 +46,3 @@ unsigned long AffinityPanel_getAffinity(Panel* this) {
}
return mask;
}
-
-HandlerResult AffinityPanel_eventHandler(Panel* this, int ch) {
- HandlerResult result = IGNORED;
- CheckItem* selected = (CheckItem*) Panel_getSelected(this);
- switch(ch) {
- case ' ':
- CheckItem_set(selected, ! (CheckItem_get(selected)) );
- result = HANDLED;
- break;
- case 0x0a:
- case 0x0d:
- case KEY_ENTER:
- result = BREAK_LOOP;
- break;
- }
- return result;
-}
diff --git a/AffinityPanel.h b/AffinityPanel.h
index dfea3d74..22283ee3 100644
--- a/AffinityPanel.h
+++ b/AffinityPanel.h
@@ -14,6 +14,4 @@ Panel* AffinityPanel_new(int processorCount, unsigned long mask);
unsigned long AffinityPanel_getAffinity(Panel* this);
-HandlerResult AffinityPanel_eventHandler(Panel* this, int ch);
-
#endif
diff --git a/AvailableColumnsPanel.c b/AvailableColumnsPanel.c
index eeceb60c..b21bd3c3 100644
--- a/AvailableColumnsPanel.c
+++ b/AvailableColumnsPanel.c
@@ -22,34 +22,14 @@ typedef struct AvailableColumnsPanel_ {
}*/
-AvailableColumnsPanel* AvailableColumnsPanel_new(Settings* settings, Panel* columns, ScreenManager* scr) {
- AvailableColumnsPanel* this = (AvailableColumnsPanel*) malloc(sizeof(AvailableColumnsPanel));
- Panel* super = (Panel*) this;
- Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
- ((Object*)this)->delete = AvailableColumnsPanel_delete;
-
- this->settings = settings;
- this->scr = scr;
- super->eventHandler = AvailableColumnsPanel_eventHandler;
-
- Panel_setHeader(super, "Available Columns");
-
- for (int i = 1; i < LAST_PROCESSFIELD; i++) {
- if (i != COMM)
- Panel_add(super, (Object*) ListItem_new(Process_fieldNames[i], 0));
- }
- this->columns = columns;
- return this;
-}
-
-void AvailableColumnsPanel_delete(Object* object) {
+static void AvailableColumnsPanel_delete(Object* object) {
Panel* super = (Panel*) object;
AvailableColumnsPanel* this = (AvailableColumnsPanel*) object;
Panel_done(super);
free(this);
}
-HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch) {
+static HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch) {
AvailableColumnsPanel* this = (AvailableColumnsPanel*) super;
char* text = ((ListItem*) Panel_getSelected(super))->value;
HandlerResult result = IGNORED;
@@ -69,3 +49,23 @@ HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch) {
}
return result;
}
+
+AvailableColumnsPanel* AvailableColumnsPanel_new(Settings* settings, Panel* columns, ScreenManager* scr) {
+ AvailableColumnsPanel* this = (AvailableColumnsPanel*) malloc(sizeof(AvailableColumnsPanel));
+ Panel* super = (Panel*) this;
+ Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
+ ((Object*)this)->delete = AvailableColumnsPanel_delete;
+
+ this->settings = settings;
+ this->scr = scr;
+ super->eventHandler = AvailableColumnsPanel_eventHandler;
+
+ Panel_setHeader(super, "Available Columns");
+
+ for (int i = 1; i < LAST_PROCESSFIELD; i++) {
+ if (i != COMM)
+ Panel_add(super, (Object*) ListItem_new(Process_fieldNames[i], 0));
+ }
+ this->columns = columns;
+ return this;
+}
diff --git a/AvailableColumnsPanel.h b/AvailableColumnsPanel.h
index d7bed265..d07acf80 100644
--- a/AvailableColumnsPanel.h
+++ b/AvailableColumnsPanel.h
@@ -25,8 +25,4 @@ typedef struct AvailableColumnsPanel_ {
AvailableColumnsPanel* AvailableColumnsPanel_new(Settings* settings, Panel* columns, ScreenManager* scr);
-void AvailableColumnsPanel_delete(Object* object);
-
-HandlerResult AvailableColumnsPanel_eventHandler(Panel* super, int ch);
-
#endif
diff --git a/AvailableMetersPanel.c b/AvailableMetersPanel.c
index cb87802e..0645eba2 100644
--- a/AvailableMetersPanel.c
+++ b/AvailableMetersPanel.c
@@ -23,41 +23,7 @@ typedef struct AvailableMetersPanel_ {
}*/
-AvailableMetersPanel* AvailableMetersPanel_new(Settings* settings, Panel* leftMeters, Panel* rightMeters, ScreenManager* scr) {
- AvailableMetersPanel* this = (AvailableMetersPanel*) malloc(sizeof(AvailableMetersPanel));
- Panel* super = (Panel*) this;
- Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
- ((Object*)this)->delete = AvailableMetersPanel_delete;
-
- this->settings = settings;
- this->leftPanel = leftMeters;
- this->rightPanel = rightMeters;
- this->scr = scr;
- super->eventHandler = AvailableMetersPanel_EventHandler;
-
- Panel_setHeader(super, "Available meters");
- for (int i = 1; Meter_types[i]; i++) {
- MeterType* type = Meter_types[i];
- if (type != &CPUMeter) {
- Panel_add(super, (Object*) ListItem_new(type->uiName, i << 16));
- }
- }
- MeterType* type = &CPUMeter;
- int processors = settings->pl->processorCount;
- if (processors > 1) {
- Panel_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);
- Panel_add(super, (Object*) ListItem_new(buffer, i));
- }
- } else {
- Panel_add(super, (Object*) ListItem_new("CPU", 1));
- }
- return this;
-}
-
-void AvailableMetersPanel_delete(Object* object) {
+static void AvailableMetersPanel_delete(Object* object) {
Panel* super = (Panel*) object;
AvailableMetersPanel* this = (AvailableMetersPanel*) object;
Panel_done(super);
@@ -69,7 +35,7 @@ static inline void AvailableMetersPanel_addHeader(Header* header, Panel* panel,
Panel_add(panel, (Object*) Meter_toListItem(meter));
}
-HandlerResult AvailableMetersPanel_EventHandler(Panel* super, int ch) {
+static HandlerResult AvailableMetersPanel_eventHandler(Panel* super, int ch) {
AvailableMetersPanel* this = (AvailableMetersPanel*) super;
Header* header = this->settings->header;
@@ -104,3 +70,37 @@ HandlerResult AvailableMetersPanel_EventHandler(Panel* super, int ch) {
}
return result;
}
+
+AvailableMetersPanel* AvailableMetersPanel_new(Settings* settings, Panel* leftMeters, Panel* rightMeters, ScreenManager* scr) {
+ AvailableMetersPanel* this = (AvailableMetersPanel*) malloc(sizeof(AvailableMetersPanel));
+ Panel* super = (Panel*) this;
+ Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
+ ((Object*)this)->delete = AvailableMetersPanel_delete;
+
+ this->settings = settings;
+ this->leftPanel = leftMeters;
+ this->rightPanel = rightMeters;
+ this->scr = scr;
+ super->eventHandler = AvailableMetersPanel_eventHandler;
+
+ Panel_setHeader(super, "Available meters");
+ for (int i = 1; Meter_types[i]; i++) {
+ MeterType* type = Meter_types[i];
+ if (type != &CPUMeter) {
+ Panel_add(super, (Object*) ListItem_new(type->uiName, i << 16));
+ }
+ }
+ MeterType* type = &CPUMeter;
+ int processors = settings->pl->processorCount;
+ if (processors > 1) {
+ Panel_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);
+ Panel_add(super, (Object*) ListItem_new(buffer, i));
+ }
+ } else {
+ Panel_add(super, (Object*) ListItem_new("CPU", 1));
+ }
+ return this;
+}
diff --git a/AvailableMetersPanel.h b/AvailableMetersPanel.h
index 89d95179..25d4c08b 100644
--- a/AvailableMetersPanel.h
+++ b/AvailableMetersPanel.h
@@ -26,8 +26,4 @@ typedef struct AvailableMetersPanel_ {
AvailableMetersPanel* AvailableMetersPanel_new(Settings* settings, Panel* leftMeters, Panel* rightMeters, ScreenManager* scr);
-void AvailableMetersPanel_delete(Object* object);
-
-HandlerResult AvailableMetersPanel_EventHandler(Panel* super, int ch);
-
#endif
diff --git a/CPUMeter.c b/CPUMeter.c
index 1fdac5ca..bc6af15e 100644
--- a/CPUMeter.c
+++ b/CPUMeter.c
@@ -22,33 +22,6 @@ int CPUMeter_attributes[] = {
CPU_NICE, CPU_NORMAL, CPU_KERNEL, CPU_IRQ, CPU_SOFTIRQ, CPU_IOWAIT
};
-MeterType CPUMeter = {
- .setValues = CPUMeter_setValues,
- .display = CPUMeter_display,
- .mode = BAR_METERMODE,
- .items = 6,
- .total = 100.0,
- .attributes = CPUMeter_attributes,
- .name = "CPU",
- .uiName = "CPU",
- .caption = "CPU",
- .init = CPUMeter_init
-};
-
-MeterType AllCPUsMeter = {
- .mode = 0,
- .items = 1,
- .total = 100.0,
- .attributes = CPUMeter_attributes,
- .name = "AllCPUs",
- .uiName = "All CPUs",
- .caption = "CPU",
- .draw = AllCPUsMeter_draw,
- .init = AllCPUsMeter_init,
- .setMode = AllCPUsMeter_setMode,
- .done = AllCPUsMeter_done
-};
-
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
@@ -56,7 +29,7 @@ MeterType AllCPUsMeter = {
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
-void CPUMeter_init(Meter* this) {
+static void CPUMeter_init(Meter* this) {
int processor = this->param;
if (this->pl->processorCount > 1) {
char caption[10];
@@ -67,7 +40,7 @@ void CPUMeter_init(Meter* this) {
Meter_setCaption(this, "Avg");
}
-void CPUMeter_setValues(Meter* this, char* buffer, int size) {
+static void CPUMeter_setValues(Meter* this, char* buffer, int size) {
ProcessList* pl = this->pl;
int processor = this->param;
double total = (double) pl->totalPeriod[processor];
@@ -90,7 +63,7 @@ void CPUMeter_setValues(Meter* this, char* buffer, int size) {
snprintf(buffer, size, "%5.1f%%", cpu );
}
-void CPUMeter_display(Object* cast, RichString* out) {
+static void CPUMeter_display(Object* cast, RichString* out) {
char buffer[50];
Meter* this = (Meter*)cast;
RichString_init(out);
@@ -123,7 +96,7 @@ void CPUMeter_display(Object* cast, RichString* out) {
}
}
-void AllCPUsMeter_init(Meter* this) {
+static void AllCPUsMeter_init(Meter* this) {
int processors = this->pl->processorCount;
this->drawBuffer = malloc(sizeof(Meter*) * processors);
Meter** meters = (Meter**) this->drawBuffer;
@@ -133,21 +106,21 @@ void AllCPUsMeter_init(Meter* this) {
this->mode = BAR_METERMODE;
}
-void AllCPUsMeter_done(Meter* this) {
+static void AllCPUsMeter_done(Meter* this) {
int processors = this->pl->processorCount;
Meter** meters = (Meter**) this->drawBuffer;
for (int i = 0; i < processors; i++)
Meter_delete((Object*)meters[i]);
}
-void AllCPUsMeter_setMode(Meter* this, int mode) {
+static void AllCPUsMeter_setMode(Meter* this, int mode) {
this->mode = mode;
int processors = this->pl->processorCount;
int h = Meter_modes[this->mode]->h;
this->h = h * processors;
}
-void AllCPUsMeter_draw(Meter* this, int x, int y, int w) {
+static void AllCPUsMeter_draw(Meter* this, int x, int y, int w) {
int processors = this->pl->processorCount;
Meter** meters = (Meter**) this->drawBuffer;
for (int i = 0; i < processors; i++) {
@@ -156,3 +129,30 @@ void AllCPUsMeter_draw(Meter* this, int x, int y, int w) {
y += meters[i]->h;
}
}
+
+MeterType CPUMeter = {
+ .setValues = CPUMeter_setValues,
+ .display = CPUMeter_display,
+ .mode = BAR_METERMODE,
+ .items = 6,
+ .total = 100.0,
+ .attributes = CPUMeter_attributes,
+ .name = "CPU",
+ .uiName = "CPU",
+ .caption = "CPU",
+ .init = CPUMeter_init
+};
+
+MeterType AllCPUsMeter = {
+ .mode = 0,
+ .items = 1,
+ .total = 100.0,
+ .attributes = CPUMeter_attributes,
+ .name = "AllCPUs",
+ .uiName = "All CPUs",
+ .caption = "CPU",
+ .draw = AllCPUsMeter_draw,
+ .init = AllCPUsMeter_init,
+ .setMode = AllCPUsMeter_setMode,
+ .done = AllCPUsMeter_done
+};
diff --git a/CPUMeter.h b/CPUMeter.h
index bd46a394..2ceb4d45 100644
--- a/CPUMeter.h
+++ b/CPUMeter.h
@@ -23,10 +23,6 @@ in the source distribution for its full text.
extern int CPUMeter_attributes[];
-extern MeterType CPUMeter;
-
-extern MeterType AllCPUsMeter;
-
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
@@ -34,18 +30,8 @@ extern MeterType AllCPUsMeter;
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
-void CPUMeter_init(Meter* this);
-
-void CPUMeter_setValues(Meter* this, char* buffer, int size);
-
-void CPUMeter_display(Object* cast, RichString* out);
-
-void AllCPUsMeter_init(Meter* this);
-
-void AllCPUsMeter_done(Meter* this);
-
-void AllCPUsMeter_setMode(Meter* this, int mode);
+extern MeterType CPUMeter;
-void AllCPUsMeter_draw(Meter* this, int x, int y, int w);
+extern MeterType AllCPUsMeter;
#endif
diff --git a/CRT.c b/CRT.c
index 7d2cc10b..942e2775 100644
--- a/CRT.c
+++ b/CRT.c
@@ -114,6 +114,17 @@ int CRT_colors[LAST_COLORELEMENT] = { 0 };
char* CRT_termType;
+static void CRT_handleSIGSEGV(int signal) {
+ CRT_done();
+ fprintf(stderr, "htop " VERSION " aborted. Please report bug at http://htop.sf.net\n");
+ exit(1);
+}
+
+static void CRT_handleSIGTERM(int signal) {
+ CRT_done();
+ exit(0);
+}
+
// TODO: pass an instance of Settings instead.
void CRT_init(int delay, int colorScheme) {
@@ -182,17 +193,6 @@ void CRT_enableDelay() {
halfdelay(CRT_delay);
}
-void CRT_handleSIGSEGV(int signal) {
- CRT_done();
- fprintf(stderr, "htop " VERSION " aborted. Please report bug at http://htop.sf.net\n");
- exit(1);
-}
-
-void CRT_handleSIGTERM(int signal) {
- CRT_done();
- exit(0);
-}
-
void CRT_setColors(int colorScheme) {
CRT_colorScheme = colorScheme;
if (colorScheme == COLORSCHEME_BLACKNIGHT) {
diff --git a/CRT.h b/CRT.h
index e455b3b7..cba59d1a 100644
--- a/CRT.h
+++ b/CRT.h
@@ -127,10 +127,6 @@ void CRT_disableDelay();
void CRT_enableDelay();
-void CRT_handleSIGSEGV(int signal);
-
-void CRT_handleSIGTERM(int signal);
-
void CRT_setColors(int colorScheme);
#endif
diff --git a/CategoriesPanel.c b/CategoriesPanel.c
index 9d471217..8b9d6636 100644
--- a/CategoriesPanel.c
+++ b/CategoriesPanel.c
@@ -35,31 +35,40 @@ static char* ColorsFunctions[10] = {" ", " ", " ", " ", "
static char* AvailableColumnsFunctions[10] = {" ", " ", " ", " ", "Add ", " ", " ", " ", " ", "Done "};
-CategoriesPanel* CategoriesPanel_new(Settings* settings, ScreenManager* scr) {
- CategoriesPanel* this = (CategoriesPanel*) malloc(sizeof(CategoriesPanel));
- Panel* super = (Panel*) this;
- Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
- ((Object*)this)->delete = CategoriesPanel_delete;
-
- this->settings = settings;
- this->scr = scr;
- super->eventHandler = CategoriesPanel_eventHandler;
- Panel_setHeader(super, "Setup");
- Panel_add(super, (Object*) ListItem_new("Meters", 0));
- Panel_add(super, (Object*) ListItem_new("Display options", 0));
- Panel_add(super, (Object*) ListItem_new("Colors", 0));
- Panel_add(super, (Object*) ListItem_new("Columns", 0));
- return this;
-}
-
-void CategoriesPanel_delete(Object* object) {
+static void CategoriesPanel_delete(Object* object) {
Panel* super = (Panel*) object;
CategoriesPanel* this = (CategoriesPanel*) object;
Panel_done(super);
free(this);
}
-HandlerResult CategoriesPanel_eventHandler(Panel* super, int ch) {
+void CategoriesPanel_makeMetersPage(CategoriesPanel* this) {
+ Panel* leftMeters = (Panel*) MetersPanel_new(this->settings, "Left column", this->settings->header->leftMeters, this->scr);
+ Panel* rightMeters = (Panel*) MetersPanel_new(this->settings, "Right column", this->settings->header->rightMeters, this->scr);
+ Panel* availableMeters = (Panel*) AvailableMetersPanel_new(this->settings, leftMeters, rightMeters, this->scr);
+ ScreenManager_add(this->scr, leftMeters, FunctionBar_new(10, MetersFunctions, NULL, NULL), 20);
+ ScreenManager_add(this->scr, rightMeters, FunctionBar_new(10, MetersFunctions, NULL, NULL), 20);
+ ScreenManager_add(this->scr, availableMeters, FunctionBar_new(10, AvailableMetersFunctions, NULL, NULL), -1);
+}
+
+static void CategoriesPanel_makeDisplayOptionsPage(CategoriesPanel* this) {
+ Panel* displayOptions = (Panel*) DisplayOptionsPanel_new(this->settings, this->scr);
+ ScreenManager_add(this->scr, displayOptions, FunctionBar_new(10, DisplayOptionsFunctions, NULL, NULL), -1);
+}
+
+static void CategoriesPanel_makeColorsPage(CategoriesPanel* this) {
+ Panel* colors = (Panel*) ColorsPanel_new(this->settings, this->scr);
+ ScreenManager_add(this->scr, colors, FunctionBar_new(10, ColorsFunctions, NULL, NULL), -1);
+}
+
+static void CategoriesPanel_makeColumnsPage(CategoriesPanel* this) {
+ Panel* columns = (Panel*) ColumnsPanel_new(this->settings, this->scr);
+ Panel* availableColumns = (Panel*) AvailableColumnsPanel_new(this->settings, columns, this->scr);
+ ScreenManager_add(this->scr, columns, FunctionBar_new(10, ColumnsFunctions, NULL, NULL), 20);
+ ScreenManager_add(this->scr, availableColumns, FunctionBar_new(10, AvailableColumnsFunctions, NULL, NULL), -1);
+}
+
+static HandlerResult CategoriesPanel_eventHandler(Panel* super, int ch) {
CategoriesPanel* this = (CategoriesPanel*) super;
HandlerResult result = IGNORED;
@@ -107,28 +116,19 @@ HandlerResult CategoriesPanel_eventHandler(Panel* super, int ch) {
return result;
}
-void CategoriesPanel_makeMetersPage(CategoriesPanel* this) {
- Panel* leftMeters = (Panel*) MetersPanel_new(this->settings, "Left column", this->settings->header->leftMeters, this->scr);
- Panel* rightMeters = (Panel*) MetersPanel_new(this->settings, "Right column", this->settings->header->rightMeters, this->scr);
- Panel* availableMeters = (Panel*) AvailableMetersPanel_new(this->settings, leftMeters, rightMeters, this->scr);
- ScreenManager_add(this->scr, leftMeters, FunctionBar_new(10, MetersFunctions, NULL, NULL), 20);
- ScreenManager_add(this->scr, rightMeters, FunctionBar_new(10, MetersFunctions, NULL, NULL), 20);
- ScreenManager_add(this->scr, availableMeters, FunctionBar_new(10, AvailableMetersFunctions, NULL, NULL), -1);
-}
-
-void CategoriesPanel_makeDisplayOptionsPage(CategoriesPanel* this) {
- Panel* displayOptions = (Panel*) DisplayOptionsPanel_new(this->settings, this->scr);
- ScreenManager_add(this->scr, displayOptions, FunctionBar_new(10, DisplayOptionsFunctions, NULL, NULL), -1);
-}
-
-void CategoriesPanel_makeColorsPage(CategoriesPanel* this) {
- Panel* colors = (Panel*) ColorsPanel_new(this->settings, this->scr);
- ScreenManager_add(this->scr, colors, FunctionBar_new(10, ColorsFunctions, NULL, NULL), -1);
-}
+CategoriesPanel* CategoriesPanel_new(Settings* settings, ScreenManager* scr) {
+ CategoriesPanel* this = (CategoriesPanel*) malloc(sizeof(CategoriesPanel));
+ Panel* super = (Panel*) this;
+ Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
+ ((Object*)this)->delete = CategoriesPanel_delete;
-void CategoriesPanel_makeColumnsPage(CategoriesPanel* this) {
- Panel* columns = (Panel*) ColumnsPanel_new(this->settings, this->scr);
- Panel* availableColumns = (Panel*) AvailableColumnsPanel_new(this->settings, columns, this->scr);
- ScreenManager_add(this->scr, columns, FunctionBar_new(10, ColumnsFunctions, NULL, NULL), 20);
- ScreenManager_add(this->scr, availableColumns, FunctionBar_new(10, AvailableColumnsFunctions, NULL, NULL), -1);
+ this->settings = settings;
+ this->scr = scr;
+ super->eventHandler = CategoriesPanel_eventHandler;
+ Panel_setHeader(super, "Setup");
+ Panel_add(super, (Object*) ListItem_new("Meters", 0));
+ Panel_add(super, (Object*) ListItem_new("Display options", 0));
+ Panel_add(super, (Object*) ListItem_new("Colors", 0));
+ Panel_add(super, (Object*) ListItem_new("Columns", 0));
+ return thi