From 5afce7d29a2d852446b58b4410c43d7bf2063b11 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 28 Aug 2011 18:19:48 +0000 Subject: Added client::ButtonMenu base class, refactored client::EntityMenu as a ButtonMenu child. --- src/client/buttonmenu.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/client/buttonmenu.h (limited to 'src/client/buttonmenu.h') 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__ -- cgit v1.2.3