1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmCursesWidget_h
- #define cmCursesWidget_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include "cmCursesStandardIncludes.h"
- #include "cmStateTypes.h"
- #include <string>
- class cmCursesMainForm;
- class cmCursesWidget
- {
- CM_DISABLE_COPY(cmCursesWidget)
- public:
- cmCursesWidget(int width, int height, int left, int top);
- virtual ~cmCursesWidget();
- /**
- * Handle user input. Called by the container of this widget
- * when this widget has focus. Returns true if the input was
- * handled
- */
- virtual bool HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w) = 0;
- /**
- * Change the position of the widget. Set isNewPage to true
- * if this widget marks the beginning of a new page.
- */
- virtual void Move(int x, int y, bool isNewPage);
- /**
- * Set/Get the value (setting the value also changes the contents
- * of the field buffer).
- */
- virtual void SetValue(const std::string& value);
- virtual const char* GetValue();
- /**
- * Get the type of the widget (STRING, PATH etc...)
- */
- cmStateEnums::CacheEntryType GetType() { return this->Type; }
- /**
- * If there are any, print the widget specific commands
- * in the toolbar and return true. Otherwise, return false
- * and the parent widget will print.
- */
- virtual bool PrintKeys() { return false; }
- /**
- * Set/Get the page this widget is in.
- */
- void SetPage(int page) { this->Page = page; }
- int GetPage() { return this->Page; }
- friend class cmCursesMainForm;
- protected:
- cmStateEnums::CacheEntryType Type;
- std::string Value;
- FIELD* Field;
- // The page in the main form this widget is in
- int Page;
- };
- #endif // cmCursesWidget_h
|