/* 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__