diff options
author | Stijn Buys <ingar@osirion.org> | 2008-10-16 16:34:15 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-10-16 16:34:15 +0000 |
commit | 1a28393dabf4f4696bf433ddde52e7a25253c955 (patch) | |
tree | 4d4fa4034f30fc882a78ab6ea148a32e83b9e88c /src/ui/inputbox.h | |
parent | 1e0df536c2fae85c317ce9c3cc17603d5f98c911 (diff) |
various user interface related updates
Diffstat (limited to 'src/ui/inputbox.h')
-rw-r--r-- | src/ui/inputbox.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/ui/inputbox.h b/src/ui/inputbox.h new file mode 100644 index 0000000..557ca6c --- /dev/null +++ b/src/ui/inputbox.h @@ -0,0 +1,55 @@ +/* + ui/inputbox.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_UI_INPUTBOX_H__ +#define __INCLUDED_UI_INPUTBOX_H__ + +#include "ui/widget.h" + +namespace ui +{ + +/// text input widget +class InputBox : public Widget +{ +public: + InputBox(Widget *parent); + ~InputBox(); + + /// set the text displayed by the label + void set_text(std::string const &text); + + /// set the text displayed by the label + void set_text(const char *text); + + /// return the text displayed by the label + inline std::string const &text() const { + return input_text; + } + + /// clear the text + void clear(); + +protected: + /// draw the widget + virtual void draw(); + + /// called when the widget receives a key press + virtual bool on_keypress(const int key, const unsigned int modifier); + + /// called when the widget receives a key release + virtual bool on_keyrelease(const int key, const unsigned int modifier); + +private: + + std::string input_text; + size_t input_pos; +}; + +} + +#endif // __INCLUDED_UI_INPUTBOX_H__ + |