diff options
Diffstat (limited to 'Source/CursesDialog/cmCursesOptionsWidget.h')
-rw-r--r-- | Source/CursesDialog/cmCursesOptionsWidget.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Source/CursesDialog/cmCursesOptionsWidget.h b/Source/CursesDialog/cmCursesOptionsWidget.h new file mode 100644 index 0000000..0128d6a --- /dev/null +++ b/Source/CursesDialog/cmCursesOptionsWidget.h @@ -0,0 +1,39 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmCursesOptionsWidget_h +#define cmCursesOptionsWidget_h + +#include "cmConfigure.h" // IWYU pragma: keep + +#include "cmCursesStandardIncludes.h" +#include "cmCursesWidget.h" + +#include <string> +#include <vector> + +class cmCursesMainForm; + +class cmCursesOptionsWidget : public cmCursesWidget +{ +public: + cmCursesOptionsWidget(int width, int height, int left, int top); + + cmCursesOptionsWidget(cmCursesOptionsWidget const&) = delete; + cmCursesOptionsWidget& operator=(cmCursesOptionsWidget const&) = delete; + + // Description: + // Handle user input. Called by the container of this widget + // when this widget has focus. Returns true if the input was + // handled. + bool HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w) override; + void SetOption(const std::string&); + void AddOption(std::string const&); + void NextOption(); + void PreviousOption(); + +protected: + std::vector<std::string> Options; + std::vector<std::string>::size_type CurrentOption; +}; + +#endif // cmCursesOptionsWidget_h |