From b417df720584c101f3799874a0c836a543a8d0a8 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 12 Oct 2008 14:55:10 +0000 Subject: user interface updates, work-in-progress --- src/ui/input.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/ui/input.h (limited to 'src/ui/input.h') diff --git a/src/ui/input.h b/src/ui/input.h new file mode 100644 index 0000000..214f63e --- /dev/null +++ b/src/ui/input.h @@ -0,0 +1,55 @@ +/* + ui/input.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_INPUT_H__ +#define __INCLUDED_UI_INPUT_H__ + +#include "ui/widget.h" + +namespace ui +{ + +/// text input widget +class Input : public Widget +{ +public: + Input(Widget *parent); + ~Input(); + + /// 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_INPUT_H__ + -- cgit v1.2.3