19#ifndef HEADER_ABSTRACT_STATE_MANAGER_HPP
20#define HEADER_ABSTRACT_STATE_MANAGER_HPP
25#include "guiengine/engine.hpp"
26#include "guiengine/screen.hpp"
27#include "utils/leak_check.hpp"
67 void pushMenu(
Screen* screen);
139 void hardResetAndGoToScreen()
143 GUIEngine::clearScreenCache();
145 T* instance = T::getInstance();
147 m_menu_stack.emplace_back(instance->getName(), instance);
153 onTopMostScreenChanged();
179 virtual void onTopMostScreenChanged() = 0;
Abstract base class you must override from to use the GUI engine.
Definition: abstract_state_manager.hpp:54
void enterGameState()
call to make the state manager enter game mode.
Definition: abstract_state_manager.cpp:50
void reshowTopMostMenu()
to be called after e.g.
Definition: abstract_state_manager.cpp:192
virtual void escapePressed()=0
callback invoked whenever escape was pressed (or any similar cancel operation)
void enterMenuState()
Used in no graphics STK to enter menu screen (when server is idle state)
Definition: abstract_state_manager.hpp:123
unsigned int getMenuStackSize() const
Returns the number of screens on the stack.
Definition: abstract_state_manager.hpp:184
void pushScreen(Screen *screen)
adds a menu at the top of the screens stack
Definition: abstract_state_manager.cpp:134
void replaceTopMostScreen(Screen *screen, GUIEngine::GameState gameState=GUIEngine::CURRENT)
replaces the menu at the top of the screens stack (i.e.
Definition: abstract_state_manager.cpp:155
std::vector< std::pair< std::string, Screen * > > m_menu_stack
This stack will contain menu names (e.g.
Definition: abstract_state_manager.hpp:65
void resetAndGoToScreen(Screen *screen)
clears the menu stack and starts afresh with a new stack containing only the given screen
Definition: abstract_state_manager.cpp:263
GameState getGameState()
Definition: abstract_state_manager.cpp:74
void resetAndSetStack(Screen *screens[])
Sets the whole menu stack.
Definition: abstract_state_manager.cpp:290
std::atomic< GameState > m_game_mode
Whether we are in game mode.
Definition: abstract_state_manager.hpp:59
virtual void onGameStateChange(GameState new_state)=0
callback invoked when game mode changes (e.g.
void onResize()
Called when resizing of stk window.
Definition: abstract_state_manager.cpp:317
void popMenu()
removes the menu at the top of the screens stack If the stack becomes empty after performing the pop ...
Definition: abstract_state_manager.cpp:218
virtual void onStackEmptied()=0
callback invoked when the stack is emptied (all menus are popped out).
Represents a single GUI screen.
Definition: screen.hpp:97
virtual void init()
Callback invoked when entering this menu (after the widgets have been added).
Definition: screen.cpp:94
virtual void tearDown()
Callback invoked before leaving this menu.
Definition: screen.cpp:116
GameState
Definition: abstract_state_manager.hpp:41
@ CURRENT
Dummy GameState e.
Definition: abstract_state_manager.hpp:46
Contains all GUI engine related classes and functions.
Definition: abstract_state_manager.hpp:33
void switchToScreen(Screen *screen)
Low-level mean to change current screen.
Definition: engine.cpp:925
Screen * getCurrentScreen()
Definition: engine.hpp:178