diff options
Autocommit at 28.05.2022 @ 20:10
1 files changed, 3 insertions, 87 deletions
| -rw-r--r-- | src/Generic/ConsoleInterface/Menu.cpp | 90 |
diff --git a/src/Generic/ConsoleInterface/Menu.cpp b/src/Generic/ConsoleInterface/Menu.cpp index 3ab857e..39084a1 100644 --- a/src/Generic/ConsoleInterface/Menu.cpp +++ b/src/Generic/ConsoleInterface/Menu.cpp @@ -2,81 +2,7 @@ #include "Toolbox.hpp" #include <cstring> -Menu::Menu() : Menu("Menu", false, false) {} - -/*! \param title C-style string, class stores at most 255 characters (last character is always terminating zero) - * \param backExistsApp Flag whether or not to list the 0-th option as "Exit", rather than "Go Back" - * \param isSubMenu Flag whether or not to show the title as a subTitle or not - */ -Menu::Menu(const char* title, bool backExistsApp, bool isSubMenu) : menuOptions() { - this->backExistsApp = backExistsApp; - this->isSubMenu = isSubMenu; - strncpy(this->title, title, 255); - this->title[255] = '\0'; -} - -/*! \param title C-style string, class stores at most 255 characters (last character is always terminating zero) - * \param backExistsApp Flag whether or not to list the 0-th option as "Exit", rather than "Go Back" - * \param isSubMenu Flag whether or not to show the title as a subTitle or not - * \param commands Pointer to an array of Command instances - * \param commandCount Number of elements that "commands" points to - */ -Menu::Menu(const char* title, bool backExistsApp, bool isSubMenu, const Command* commands, unsigned commandCount) { - this->backExistsApp = backExistsApp; - this->isSubMenu = isSubMenu; - menuOptions = List<Command>(commands, commandCount); - strncpy(this->title, title, 255); - this->title[255] = '\0'; -} - -void Menu::addCommand(const Command& command) { - menuOptions.add(command); -} - -enum MessageType { - NoPrint, - Success, - Warning, - Error, -}; -const char* msg; -MessageType msgType; - -/*! \param message C-style string, saves to pointer for later reuse when showing the message. - * - * Stores the message pointer in a global variable (in the cpp file) and - * sets it's type as an Error in another global variable (in the cpp file). - * - * The next time the whole Menu is shown, the message will appear below the title. - */ -void Menu::registerError(const char* message) const { - msg = message; - msgType = Error; -} - -/*! \param message C-style string, saves to pointer for later reuse when showing the message. - * - * Stores the message pointer in a global variable (in the cpp file) and - * sets it's type as a Warning in another global variable (in the cpp file). - * - * The next time the whole Menu is shown, the message will appear below the title. - */ -void Menu::registerWarning(const char* message) const { - msg = message; - msgType = Warning; -} - -/*! \param message C-style string, saves to pointer for later reuse when showing the message. - * - * Stores the message pointer in a global variable (in the cpp file) and - * sets it's type as Success in another global variable (in the cpp file). - * - * The next time the whole Menu is shown, the message will appear below the title. - */ -void Menu::registerSuccess(const char* message) const { - msg = message; - msgType = Success; -} +Menu::Menu() : menuOptions() {} /*! * Prints the title, then an Error/Warning/Sucess message (if set), @@ -100,18 +26,8 @@ void Menu::navigate() const { while (buffer != 0) { clear(); - if (isSubMenu) - subTitleBox(title); - else - titleBox(title); - - switch(msgType) { - case Error: errorBox(msg); msgType = NoPrint; break; - case Warning: warningBox(msg); msgType = NoPrint; break; - case Success: successBox(msg); msgType = NoPrint; break; - case NoPrint: printLine(""); break; - } - printLine(""); + print("> "); + readLine(); resetOrderedList(0); if (backExistsApp) |
