#ifndef HEADER_SUPERTUX_GUI_MENU_MANAGER_HPP
#define HEADER_SUPERTUX_GUI_MENU_MANAGER_HPP
-#include <vector>
#include <list>
#include <memory>
+#include <vector>
#include "SDL.h"
+class Dialog;
class DrawingContext;
class Menu;
class MenuTransition;
public:
static MenuManager& instance();
-public:
+private:
+ std::unique_ptr<Dialog> m_dialog;
+ bool m_has_next_dialog;
+ std::unique_ptr<Dialog> m_next_dialog;
+
std::vector<std::unique_ptr<Menu> > m_menu_stack;
std::unique_ptr<MenuTransition> m_transition;
- friend class Menu;
-
public:
MenuManager();
~MenuManager();
void draw(DrawingContext& context);
+ void set_dialog(std::unique_ptr<Dialog> dialog);
+
void set_menu(int id);
void set_menu(std::unique_ptr<Menu> menu);
void push_menu(int id);
}
private:
- Menu* current() const;
+ Menu* current_menu() const;
void transition(Menu* from, Menu* to);
private: