diff options
Autocommit at 05.05.2022 @ 14:58
1 files changed, 10 insertions, 11 deletions
| -rw-r--r-- | src/ConsoleInterface/Menu.cpp | 21 |
diff --git a/src/ConsoleInterface/Menu.cpp b/src/ConsoleInterface/Menu.cpp index cfed9fa..9c24d41 100644 --- a/src/ConsoleInterface/Menu.cpp +++ b/src/ConsoleInterface/Menu.cpp @@ -17,23 +17,22 @@ void Menu::navigate() const { return; } - resetOrderedList(0); - printOrderedListElem("Go Back"); - for (unsigned i = 0; i < menuOptions.get_count(); i++) - printOrderedListElem(menuOptions[i].get_nameInMenu()); + unsigned buffer = 1; // We immedeately read the value of buffer, so this is fine - unsigned buffer = 0; // 0 is optionless continue, 1 is exit, others are options + while (buffer != 0) { + resetOrderedList(0); + printOrderedListElem("Go Back"); + for (unsigned i = 0; i < menuOptions.get_count(); i++) + printOrderedListElem(menuOptions[i].get_nameInMenu()); - while (buffer != 1) { - print("Execute No [0-"); + _printInputBoxLabel("Execute No [0-"); print(menuOptions.get_count()); print("]: "); read(buffer); - buffer++; - if (buffer - 2 > menuOptions.get_count()) + if (buffer > menuOptions.get_count()) printError("Invalid menu option!"); - else - menuOptions[buffer - 2].run(); + else if (buffer > 0) + menuOptions[buffer - 1].run(); } } |
