/*! * \file include/Menu.h * \brief Menu 'overlay' interface * * \author xythobuz */ #ifndef _MENU_H_ #define _MENU_H_ #include class Menu { public: virtual ~Menu() { } virtual int initialize() = 0; virtual void display() = 0; virtual void handleKeyboard(KeyboardButton key, bool pressed) = 0; virtual void handleMouseClick(unsigned int x, unsigned int y, KeyboardButton button, bool released) = 0; virtual void handleMouseScroll(int xrel, int yrel) = 0; bool isVisible() { return visible; } void setVisible(bool v) { visible = v; } protected: virtual void showDialog(std::string msg, std::string btn1, std::string btn2, std::function callback = std::function()); virtual void ackDialog(); virtual bool handleKeyboardDialog(KeyboardButton key, bool pressed); virtual bool handleMouseClickDialog(unsigned int x, unsigned int y, KeyboardButton button, bool released); virtual bool handleMouseScrollDialog(int xrel, int yrel); virtual void displayDialog(); bool dialogState; std::string dialogText; std::string dialogButton1; std::string dialogButton2; std::function dialogFunction; bool visible; }; Menu &getMenu(); #endif