/* client/entitymenu.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_ENTITYMENU_H__ #define __INCLUDED_CLIENT_ENTITYMENU_H__ #include "core/entity.h" #include "client/buttonmenu.h" namespace client { /// entity menu class EntityMenu : public ButtonMenu { public: /// create a new menu EntityMenu(ui::Widget *parent, const char * label = 0); ~EntityMenu(); /* ---- inspectors ----------------------------------------- */ /// entity the current menu was generated for inline core::Entity *generated_entity() { return menu_generated_entity; } /// the current generated menu inline const std::string & generated_menu() const { return menu_generated_menu; } /* ---- mutators ------------------------------------------- */ /// generate a menu from menu descriptions void generate(core::Entity *entity, const char *menulabel); protected: /// keypress event handler virtual bool on_keypress(const int key, const unsigned int modifier); private: core::Entity *menu_generated_entity; std::string menu_generated_menu; }; } #endif // __INCLUDED_CLIENT_ENTITYMENU_H__