Website Summary Files Commits Branches @commit @diff @stats
path: root / src / ConsoleInterface / Menu.cpp
diff options
context:
space:
mode:
1 files changed, 13 insertions, 1 deletions
-rw-r--r--src/ConsoleInterface/Menu.cpp14
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();
}