/* 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__