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/checkbox.h')
-rw-r--r--src/ui/checkbox.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/ui/checkbox.h b/src/ui/checkbox.h
new file mode 100644
index 0000000..aab42cf
--- /dev/null
+++ b/src/ui/checkbox.h
@@ -0,0 +1,86 @@
+/*
+ ui/checkbox.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_CHECKBOX_H__
+#define __INCLUDED_UI_CHECKBOX_H__
+
+#include "ui/widget.h"
+
+namespace ui
+{
+
+/**
+ * @brief a checkbox widget
+ * */
+class Checkbox : public Widget
+{
+public:
+ Checkbox(Widget *parent, const char *text = 0);
+ ~Checkbox();
+
+ /**
+ * @brief set the text displayed next to the checkbox
+ * */
+ inline const std::string & text() const {
+ return _text;
+ }
+
+ /**
+ * @brief current value indicated by the checkbox
+ * */
+ inline const bool value() const {
+ return _value;
+ }
+
+ /**
+ * @brief set the text displayed next to the checkbox
+ * */
+ void set_text(const std::string &text);
+
+ /**
+ * @brief set the text displayed next to the checkbox
+ * If text is NULL, the displayed text will be cleared.
+ * */
+ void set_text(const char *text);
+
+ /**
+ * @brief set the checkbox value
+ * */
+ void set_value(const bool value);
+
+ /**
+ * @brief print checkbox description
+ * */
+ virtual void print(const size_t indent) const;
+
+
+protected:
+
+ /**
+ * @brief mouse over event handler
+ * */
+ virtual void on_mouseover(const math::Vector2f &cursor);
+
+ /**
+ * @brief mouse button press event handler
+ * */
+ virtual bool on_mousepress(const unsigned int button);
+
+ /// draw the button border
+ virtual void draw_border();
+
+ /// draw the button
+ virtual void draw();
+
+private:
+ bool _value;
+ std::string _text;
+};
+
+}
+
+#endif // __INCLUDED_UI_CHECKBOX_H__
+