Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Generic / ConsoleInterface / Menu.cpp
diff options
context:
space:
mode:
Commitf3671d418a098f1fd7aa530b2ef6c975193fce1f (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-05-28 20:20:03 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-05-28 20:20:03 +0300
Filesdc2a266d711b535410b05bfeda005ec66f6ca689 /src/Generic/ConsoleInterface/Menu.cpp
FMI-OOP-P2_Tables-f3671d418a098f1fd7aa530b2ef6c975193fce1f.tar
FMI-OOP-P2_Tables-f3671d418a098f1fd7aa530b2ef6c975193fce1f.tar.gz
FMI-OOP-P2_Tables-f3671d418a098f1fd7aa530b2ef6c975193fce1f.zip
Parent1aaef6ff5bf41bfccba8944f734dea3434ac2bfc (diff)
Autocommit at 28.05.2022 @ 20:20
1 files changed, 15 insertions, 4 deletions
-rw-r--r--src/Generic/ConsoleInterface/Menu.cpp19
diff --git a/src/Generic/ConsoleInterface/Menu.cpp b/src/Generic/ConsoleInterface/Menu.cpp
index 71bafaf..16032eb 100644
--- a/src/Generic/ConsoleInterface/Menu.cpp
+++ b/src/Generic/ConsoleInterface/Menu.cpp
@@ -28,9 +28,20 @@ void Menu::navigate() const {
clear();
inputLineBox("> ", buffer, MAX_LINE_WIDTH);
- if (buffer > menuOptions.get_count())
- registerError("Invalid menu option!");
- else if (buffer > 0)
- menuOptions[buffer - 1].run();
+ unsigned index = menuOptions.get_count();
+ for (unsigned i = 0; i < menuOptions.get_count(); i++) {
+ if (strncmp(buffer, menuOptions[i].get_nameInMenu(), MAX_LINE_WIDTH) == 0) {
+ index = i;
+ break;
+ }
+ }
+
+ if (index > menuOptions.get_count()) {
+ printline("Invalid menu option!");
+ continue;
+ }
+
+
+ menuOptions[index].run();
}
}