#pragma once #include "page.h" #include #include struct AppState; class PageManager { public: PageManager() = default; void push(AppState& state, std::unique_ptr page); void pop(AppState& state); void popToRoot(AppState& state); void replace(AppState& state, std::unique_ptr page); Page* current() const; std::size_t depth() const; void handleEvent(const SDL_Event& event); void update(float dt); void render(SDL_Renderer* renderer); private: std::vector> stack_; };