diff options
author | Stijn Buys <ingar@osirion.org> | 2011-08-28 18:19:48 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2011-08-28 18:19:48 +0000 |
commit | 5afce7d29a2d852446b58b4410c43d7bf2063b11 (patch) | |
tree | 9a8f6652d5c65e5ccac0abdeac9dfc2f7aa1b3b0 /src/client/buttonmenu.h | |
parent | 3b75614be6d9f6e84a1b5818c5827dbc0ab5d516 (diff) |
Added client::ButtonMenu base class, refactored client::EntityMenu as a ButtonMenu child.
Diffstat (limited to 'src/client/buttonmenu.h')
-rw-r--r-- | src/client/buttonmenu.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/client/buttonmenu.h b/src/client/buttonmenu.h new file mode 100644 index 0000000..2c3dd87 --- /dev/null +++ b/src/client/buttonmenu.h @@ -0,0 +1,48 @@ +/* + client/buttonmenu.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_CLIENT_BUTTONMENU_H__ +#define __INCLUDED_CLIENT_BUTTONMENU_H__ + +#include "ui/label.h" +#include "ui/button.h" +#include "ui/window.h" + +namespace client +{ + +/// a menu container +class ButtonMenu : public ui::Window +{ + +public: + /// create a new menu + ButtonMenu(ui::Widget *parent, const char * label = 0); + ~ButtonMenu(); + + /// add a label + ui::Label *add_label(char const * text = 0); + + /// add a button with a command + ui::Button *add_button(char const *text = 0, char const *command = 0); + +protected: + /// remove container children + void clear(); + + /// resize event + virtual void resize(); + + /// keypress event + virtual bool on_keypress(const int key, const unsigned int modifier); + +private: + ui::Window *buttonmenu_container; +}; + +} + +#endif // __INCLUDED_CLIENT_BUTTONMENU_H__ |