From 8861bf21e9821f7adcbbafcb9f72e0f1b8f59344 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 26 Apr 2009 15:51:50 +0000 Subject: added ui::IconButton class --- src/ui/iconbutton.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/ui/iconbutton.h (limited to 'src/ui/iconbutton.h') diff --git a/src/ui/iconbutton.h b/src/ui/iconbutton.h new file mode 100644 index 0000000..d545697 --- /dev/null +++ b/src/ui/iconbutton.h @@ -0,0 +1,71 @@ +/* + ui/iconbutton.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_ICONBUTTON_H__ +#define __INCLUDED_UI_ICONBUTTON_H__ + +#include "ui/widget.h" + +namespace ui +{ + +class IconButton : public Widget +{ +public: + IconButton(Widget *parent, const char *icon=0, const char *command=0); + ~IconButton(); + + /// 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 iconbutton_command; + } + + + /// set the icon texture + void set_icon(const std::string & icon); + + /// set the icon texture + void set_icon(const char *icon); + + /// the icon texture + inline const std::string & icon() const { + return iconbutton_icon; + } + + /// print button description + virtual void print(const size_t indent) const; + + /// called when the mouse enters the widget + virtual void on_mouseover(const math::Vector2f &cursor); + + /// called when the widget receives a key press + virtual bool on_keypress(const int key, const unsigned int modifier); + + /// called when the widget receives a key release + virtual bool on_keyrelease(const int key, const unsigned int modifier); + +protected: + /// draw the button border + virtual void draw_border(); + + /// draw the button + virtual void draw(); + +private: + std::string iconbutton_command; + std::string iconbutton_icon; +}; + +} + +#endif // __INCLUDED_UI_ICONBUTTON_H__ + -- cgit v1.2.3