/* 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(); void set_command(std::string const &command); void set_command(const char *command); inline std::string const & command() const { return button_command; } /// print button description virtual void print(size_t indent); /// handle keyboard events virtual bool keypress(unsigned int key, unsigned int modifier); virtual bool keyrelease(unsigned int key, unsigned int modifier); protected: /// draw the button border virtual void draw_border(); /// draw the button text virtual void draw_text(); private: std::string button_command; }; } #endif // __INCLUDED_UI_BUTTON_H__