Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-10-16 16:34:15 +0000
committerStijn Buys <ingar@osirion.org>2008-10-16 16:34:15 +0000
commit1a28393dabf4f4696bf433ddde52e7a25253c955 (patch)
tree4d4fa4034f30fc882a78ab6ea148a32e83b9e88c /src/ui/inputbox.h
parent1e0df536c2fae85c317ce9c3cc17603d5f98c911 (diff)
various user interface related updates
Diffstat (limited to 'src/ui/inputbox.h')
-rw-r--r--src/ui/inputbox.h55
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__
+