diff options
author | Stijn Buys <ingar@osirion.org> | 2009-04-26 15:51:50 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2009-04-26 15:51:50 +0000 |
commit | 8861bf21e9821f7adcbbafcb9f72e0f1b8f59344 (patch) | |
tree | 88ebec59d2302f7b63d8b6a4decd87d8e418f4be /src/ui/iconbutton.h | |
parent | 5c1e2000231e0348ad155d304e447aad1ff309af (diff) |
added ui::IconButton class
Diffstat (limited to 'src/ui/iconbutton.h')
-rw-r--r-- | src/ui/iconbutton.h | 71 |
1 files changed, 71 insertions, 0 deletions
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__ + |