From 1a28393dabf4f4696bf433ddde52e7a25253c955 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Thu, 16 Oct 2008 16:34:15 +0000 Subject: various user interface related updates --- src/ui/inputbox.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/ui/inputbox.h (limited to 'src/ui/inputbox.h') 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__ + -- cgit v1.2.3