Skip to content

Commit

Permalink
make DisplayOptionsPanel own its alternative bar
Browse files Browse the repository at this point in the history
  • Loading branch information
hishamhm committed Feb 19, 2025
1 parent 5bb71f9 commit 08ee160
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 17 deletions.
2 changes: 0 additions & 2 deletions CommandLine.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ in the source distribution for its full text.
#include "Machine.h"
#include "MainPanel.h"
#include "MetersPanel.h"
#include "DisplayOptionsPanel.h"
#include "Panel.h"
#include "Platform.h"
#include "Process.h"
Expand Down Expand Up @@ -426,7 +425,6 @@ int CommandLine_run(int argc, char** argv) {

ScreenManager_delete(scr);
MetersPanel_cleanup();
DisplayOptionsPanel_cleanup();

UsersTable_delete(ut);

Expand Down
16 changes: 3 additions & 13 deletions DisplayOptionsPanel.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,11 @@ static const char* const DisplayOptionsFunctions[] = {" ", " ", "
static const char* const DisplayOptionsIncDecFunctions[] = {"Inc ", "Dec ", " ", "Done ", NULL};
static const char* const DisplayOptionsIncDecKeys[] = {"+ ", "- ", " ", "F10", NULL};
static const int DisplayOptionsIncDecEvents[] = {'+', '-', ERR, KEY_F(10)};
static FunctionBar* DisplayOptions_incDecBar = NULL;

void DisplayOptionsPanel_cleanup(void) {
if (DisplayOptions_incDecBar) {
FunctionBar_delete(DisplayOptions_incDecBar);
DisplayOptions_incDecBar = NULL;
}
}

static void DisplayOptionsPanel_delete(Object* object) {
Panel* super = (Panel*) object;
DisplayOptionsPanel* this = (DisplayOptionsPanel*) object;
FunctionBar_delete(this->incDecBar);
Panel_done(super);
free(this);
}
Expand Down Expand Up @@ -102,7 +95,7 @@ static HandlerResult DisplayOptionsPanel_eventHandler(Panel* super, int ch) {
/* fallthrough */
case EVENT_SET_SELECTED:
if (OptionItem_kind(selected) == OPTION_ITEM_NUMBER) {
super->currentBar = DisplayOptions_incDecBar;
super->currentBar = this->incDecBar;
} else {
Panel_setDefaultBar(super);
}
Expand Down Expand Up @@ -138,10 +131,7 @@ DisplayOptionsPanel* DisplayOptionsPanel_new(Settings* settings, ScreenManager*
FunctionBar* fuBar = FunctionBar_new(DisplayOptionsFunctions, NULL, NULL);
Panel_init(super, 1, 1, 1, 1, Class(OptionItem), true, fuBar);

if (!DisplayOptions_incDecBar) {
DisplayOptions_incDecBar = FunctionBar_new(DisplayOptionsIncDecFunctions, DisplayOptionsIncDecKeys, DisplayOptionsIncDecEvents);
}

this->incDecBar = FunctionBar_new(DisplayOptionsIncDecFunctions, DisplayOptionsIncDecKeys, DisplayOptionsIncDecEvents);
this->settings = settings;
this->scr = scr;

Expand Down
4 changes: 2 additions & 2 deletions DisplayOptionsPanel.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ in the source distribution for its full text.
#include "Panel.h"
#include "ScreenManager.h"
#include "Settings.h"
#include "FunctionBar.h"


typedef struct DisplayOptionsPanel_ {
Panel super;

Settings* settings;
ScreenManager* scr;
FunctionBar* incDecBar;
} DisplayOptionsPanel;

extern const PanelClass DisplayOptionsPanel_class;

void DisplayOptionsPanel_cleanup(void);

DisplayOptionsPanel* DisplayOptionsPanel_new(Settings* settings, ScreenManager* scr);

#endif

0 comments on commit 08ee160

Please sign in to comment.