/* ui/button.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_BUTTON_H__ #define __INCLUDED_UI_BUTTON_H__ #include #include "ui/label.h" namespace ui { class Button : public Label { public: Button(Widget *parent, const char *text = 0, const char *command = 0); ~Button(); /// set the command this button will execute void set_command(const std::string &command); /// set the command this button will execute void set_command(const char *command); /// the command this button executes inline const std::string & command() const { return button_command; } /// print button description virtual void print(const size_t indent) const; /** * @brief mouse button press event handler * */ virtual bool on_mousepress(const unsigned int button); protected: /// draw the button background virtual void draw_background(); /// draw the button border virtual void draw_border(); /// draw the button virtual void draw(); private: std::string button_command; }; } #endif // __INCLUDED_UI_BUTTON_H__