diff options
Autocommit at 01.05.2022 @ 10:16
2 files changed, 14 insertions, 2 deletions
| -rw-r--r-- | src/ConsoleInterface/Menu.cpp | 14 | ||||
| -rw-r--r-- | src/ConsoleInterface/Menu.h | 2 |
diff --git a/src/ConsoleInterface/Menu.cpp b/src/ConsoleInterface/Menu.cpp index 2589f5b..27471a6 100644 --- a/src/ConsoleInterface/Menu.cpp +++ b/src/ConsoleInterface/Menu.cpp @@ -1,10 +1,22 @@ #include "Menu.h" #include "Toolbox.h" +Menu::Menu(const Command* commands, unsigned commandCount) { + menuOptions = List<Command>(); + for (unsigned i = 0; i < commandCount; i++) + menuOptions.add(commands[i]); +} + void Menu::navigate() const { resetOrderedList(); for (unsigned i = 0; i < menuOptions.get_count(); i++) printOrderedListElem(menuOptions[i].get_nameInMenu()); - std::cout << "Execute No [0-" << menuOptions.get_count() << "]: "; + unsigned buffer = 0; + while (0 == buffer || buffer >= menuOptions.get_count()) { + std::cout << "Execute No [0-" << menuOptions.get_count() << "]: "; + std::cin >> buffer; + } + + menuOptions[buffer - 1].run(); } diff --git a/src/ConsoleInterface/Menu.h b/src/ConsoleInterface/Menu.h index c1dad5a..0c0c915 100644 --- a/src/ConsoleInterface/Menu.h +++ b/src/ConsoleInterface/Menu.h @@ -8,7 +8,7 @@ class Menu { List<Command> menuOptions; public: - Menu(); + Menu(const Command* commands, unsigned commandCount); void navigate() const; }; |
