void GUISystem::switchToScreenHandler(Event::SwitchToScreen *event) { if(event->getScreen().empty()) { LOG(GUI, "popping current screen"); popScreen(); } else if(event->getScreen()[0] == '-') { std::string until = event->getScreen().substr(1); LOG(GUI, "popping until screen \"" << until << "\""); popScreen(until); } else { LOG(GUI, "pushing screen \"" << event->getScreen() << "\""); pushScreen(event->getScreen()); } }
void ScreenManager::proccesRequests() { if (!pendingRequests.empty()) { for (auto itr = pendingRequests.begin(); itr != pendingRequests.end(); itr++) { switch (itr->action) { case Action::Push: handlePush(itr->screenID); break; case Action::Pop: popScreen(); break; case Action::Clear: clearScreens(); break; } } pendingRequests.clear(); } }
void GUISystem::pauseGameHandler(Event::PauseGame *event) { if(event->getPaused()) { pushScreen("paused"); } else { popScreen("running"); } }
void StartScreen::update(PlayerInput& input, const GameTime game_time) { UNUSED(game_time); right_box_.update(input); if(hasClosedScreen(input, right_box_)) { popScreen(); } }
void ScreenInfo::clickButtonAccept() { popScreen(); }