summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Scott <nathans@redhat.com>2020-11-26 16:15:09 +1100
committerBenBE <BenBE@geshi.org>2020-11-26 23:55:53 +0100
commitfee217551c12754db517d1badd448fc9064a48a8 (patch)
tree85fd6afea51b06c96a9b8c5c45077599d86324cb
parent83bf8cfad6a56ff1cd74ddbac61787ba68f14503 (diff)
Drop unneeded parameters to the ScreenManager constructor
All calls to ScreenManager_new always pass the same first five values, the orientation is always HORIZONTAL and the y1 parameter is always the height of the passed-in header struct pointer. I think its safe to assert at this point that no VERTICAL orientation will arrive (if it does, its no harm in re-adding this then) - so we can remove unused conditionals (and TODOs) based on orientation too.
-rw-r--r--Action.c4
-rw-r--r--Header.h4
-rw-r--r--ScreenManager.c59
-rw-r--r--ScreenManager.h8
-rw-r--r--htop.c2
5 files changed, 31 insertions, 46 deletions
diff --git a/Action.c b/Action.c
index f6e8fab5..dc57974d 100644
--- a/Action.c
+++ b/Action.c
@@ -46,7 +46,7 @@ Object* Action_pickFromVector(State* st, Panel* list, int x, bool followProcess)
Settings* settings = st->settings;
int y = panel->y;
- ScreenManager* scr = ScreenManager_new(0, header->height, 0, -1, HORIZONTAL, header, settings, st, false);
+ ScreenManager* scr = ScreenManager_new(header, settings, st, false);
scr->allowFocusChange = false;
ScreenManager_add(scr, list, x - 1);
ScreenManager_add(scr, panel, -1);
@@ -83,7 +83,7 @@ Object* Action_pickFromVector(State* st, Panel* list, int x, bool followProcess)
// ----------------------------------------
static void Action_runSetup(State* st) {
- ScreenManager* scr = ScreenManager_new(0, st->header->height, 0, -1, HORIZONTAL, st->header, st->settings, st, true);
+ ScreenManager* scr = ScreenManager_new(st->header, st->settings, st, true);
CategoriesPanel* panelCategories = CategoriesPanel_new(scr, st->settings, st->header, st->pl);
ScreenManager_add(scr, (Panel*) panelCategories, 16);
CategoriesPanel_makeMetersPage(panelCategories);
diff --git a/Header.h b/Header.h
index f99966c3..3494cdd0 100644
--- a/Header.h
+++ b/Header.h
@@ -15,7 +15,7 @@ in the source distribution for its full text.
typedef struct Header_ {
Vector** columns;
Settings* settings;
- struct ProcessList_* pl;
+ ProcessList* pl;
int nrColumns;
int pad;
int height;
@@ -23,7 +23,7 @@ typedef struct Header_ {
#define Header_forEachColumn(this_, i_) for (int (i_)=0; (i_) < (this_)->nrColumns; ++(i_))
-Header* Header_new(struct ProcessList_* pl, Settings* settings, int nrColumns);
+Header* Header_new(ProcessList* pl, Settings* settings, int nrColumns);
void Header_delete(Header* this);
diff --git a/ScreenManager.c b/ScreenManager.c
index 28f289db..51ca155f 100644
--- a/ScreenManager.c
+++ b/ScreenManager.c
@@ -20,14 +20,13 @@ in the source distribution for its full text.
#include "XUtils.h"
-ScreenManager* ScreenManager_new(int x1, int y1, int x2, int y2, Orientation orientation, Header* header, const Settings* settings, const State* state, bool owner) {
+ScreenManager* ScreenManager_new(Header* header, const Settings* settings, const State* state, bool owner) {
ScreenManager* this;
this = xMalloc(sizeof(ScreenManager));
- this->x1 = x1;
- this->y1 = y1;
- this->x2 = x2;
- this->y2 = y2;
- this->orientation = orientation;
+ this->x1 = 0;
+ this->y1 = header->height;
+ this->x2 = 0;
+ this->y2 = -1;
this->panels = Vector_new(Class(Panel), owner, DEFAULT_SIZE);
this->panelCount = 0;
this->header = header;
@@ -48,21 +47,18 @@ inline int ScreenManager_size(ScreenManager* this) {
}
void ScreenManager_add(ScreenManager* this, Panel* item, int size) {
- if (this->orientation == HORIZONTAL) {
- int lastX = 0;
- if (this->panelCount > 0) {
- Panel* last = (Panel*) Vector_get(this->panels, this->panelCount - 1);
- lastX = last->x + last->w + 1;
- }
- int height = LINES - this->y1 + this->y2;
- if (size > 0) {
- Panel_resize(item, size, height);
- } else {
- Panel_resize(item, COLS - this->x1 + this->x2 - lastX, height);
- }
- Panel_move(item, lastX, this->y1);
+ int lastX = 0;
+ if (this->panelCount > 0) {
+ Panel* last = (Panel*) Vector_get(this->panels, this->panelCount - 1);
+ lastX = last->x + last->w + 1;
+ }
+ int height = LINES - this->y1 + this->y2;
+ if (size > 0) {
+ Panel_resize(item, size, height);
+ } else {
+ Panel_resize(item, COLS - this->x1 + this->x2 - lastX, height);
}
- // TODO: VERTICAL
+ Panel_move(item, lastX, this->y1);
Vector_add(this->panels, item);
item->needsRedraw = true;
this->panelCount++;
@@ -81,19 +77,16 @@ void ScreenManager_resize(ScreenManager* this, int x1, int y1, int x2, int y2) {
this->x2 = x2;
this->y2 = y2;
int panels = this->panelCount;
- if (this->orientation == HORIZONTAL) {
- int lastX = 0;
- for (int i = 0; i < panels - 1; i++) {
- Panel* panel = (Panel*) Vector_get(this->panels, i);
- Panel_resize(panel, panel->w, LINES - y1 + y2);
- Panel_move(panel, lastX, y1);
- lastX = panel->x + panel->w + 1;
- }
- Panel* panel = (Panel*) Vector_get(this->panels, panels - 1);
- Panel_resize(panel, COLS - x1 + x2 - lastX, LINES - y1 + y2);
+ int lastX = 0;
+ for (int i = 0; i < panels - 1; i++) {
+ Panel* panel = (Panel*) Vector_get(this->panels, i);
+ Panel_resize(panel, panel->w, LINES - y1 + y2);
Panel_move(panel, lastX, y1);
+ lastX = panel->x + panel->w + 1;
}
- // TODO: VERTICAL
+ Panel* panel = (Panel*) Vector_get(this->panels, panels - 1);
+ Panel_resize(panel, COLS - x1 + x2 - lastX, LINES - y1 + y2);
+ Panel_move(panel, lastX, y1);
}
static void checkRecalculation(ScreenManager* this, double* oldTime, int* sortTimeout, bool* redraw, bool* rescan, bool* timedOut) {
@@ -131,9 +124,7 @@ static void ScreenManager_drawPanels(ScreenManager* this, int focus) {
for (int i = 0; i < nPanels; i++) {
Panel* panel = (Panel*) Vector_get(this->panels, i);
Panel_draw(panel, i == focus);
- if (this->orientation == HORIZONTAL) {
- mvvline(panel->y, panel->x + panel->w, ' ', panel->h + 1);
- }
+ mvvline(panel->y, panel->x + panel->w, ' ', panel->h + 1);
}
}
diff --git a/ScreenManager.h b/ScreenManager.h
index 97e849f3..7dda4fca 100644
--- a/ScreenManager.h
+++ b/ScreenManager.h
@@ -16,17 +16,11 @@ in the source distribution for its full text.
#include "Vector.h"
-typedef enum Orientation_ {
- VERTICAL,
- HORIZONTAL
-} Orientation;
-
typedef struct ScreenManager_ {
int x1;
int y1;
int x2;
int y2;
- Orientation orientation;
Vector* panels;
int panelCount;
Header* header;
@@ -36,7 +30,7 @@ typedef struct ScreenManager_ {
bool allowFocusChange;
} ScreenManager;
-ScreenManager* ScreenManager_new(int x1, int y1, int x2, int y2, Orientation orientation, Header* header, const Settings* settings, const State* state, bool owner);
+ScreenManager* ScreenManager_new(Header* header, const Settings* settings, const State* state, bool owner);
void ScreenManager_delete(ScreenManager* this);
diff --git a/htop.c b/htop.c
index 15b58304..2c22b14f 100644
--- a/htop.c
+++ b/htop.c
@@ -326,7 +326,7 @@ int main(int argc, char** argv) {
if (flags.commFilter)
setCommFilter(&state, &(flags.commFilter));
- ScreenManager* scr = ScreenManager_new(0, header->height, 0, -1, HORIZONTAL, header, settings, &state, true);
+ ScreenManager* scr = ScreenManager_new(header, settings, &state, true);
ScreenManager_add(scr, (Panel*) panel, -1);
ProcessList_scan(pl, false);

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