Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/input.h')
-rw-r--r--src/ui/input.h55
1 files changed, 55 insertions, 0 deletions
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__
+