/* 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); /// set compact mode inline void set_compact(const bool compact = true) { buttonmenu_compact = compact; } protected: /// remove container children void clear(); /// resize event virtual void resize(); private: ui::Window *buttonmenu_container; bool buttonmenu_compact; }; } #endif // __INCLUDED_CLIENT_BUTTONMENU_H__