From c94e93337b778db7e024483f3f261dcef4bd19c5 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 29 Jul 2016 18:32:19 +0200 Subject: Added checkbox widget. --- src/ui/checkbox.h | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/ui/checkbox.h (limited to 'src/ui/checkbox.h') 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__ + -- cgit v1.2.3