1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-01 21:45:47 +00:00

Ask for confirmation when selecting 'New Game'

This commit is contained in:
scrawl 2014-03-26 21:11:39 +01:00
parent ecfaa41e93
commit 5562c78ac4
2 changed files with 17 additions and 1 deletions

View file

@ -13,6 +13,7 @@
#include "../mwstate/character.hpp" #include "../mwstate/character.hpp"
#include "savegamedialog.hpp" #include "savegamedialog.hpp"
#include "confirmationdialog.hpp"
namespace MWGui namespace MWGui
{ {
@ -62,6 +63,11 @@ namespace MWGui
OEngine::GUI::Layout::setVisible (visible); OEngine::GUI::Layout::setVisible (visible);
} }
void MainMenu::onNewGameConfirmed()
{
MWBase::Environment::get().getStateManager()->newGame();
}
void MainMenu::onButtonClicked(MyGUI::Widget *sender) void MainMenu::onButtonClicked(MyGUI::Widget *sender)
{ {
std::string name = *sender->getUserData<std::string>(); std::string name = *sender->getUserData<std::string>();
@ -77,7 +83,16 @@ namespace MWGui
MWBase::Environment::get().getStateManager()->requestQuit(); MWBase::Environment::get().getStateManager()->requestQuit();
else if (name == "newgame") else if (name == "newgame")
{ {
MWBase::Environment::get().getStateManager()->newGame(); if (MWBase::Environment::get().getStateManager()->getState() == MWBase::StateManager::State_NoGame)
onNewGameConfirmed();
else
{
ConfirmationDialog* dialog = MWBase::Environment::get().getWindowManager()->getConfirmationDialog();
dialog->open("#{sNotifyMessage54}");
dialog->eventOkClicked.clear();
dialog->eventOkClicked += MyGUI::newDelegate(this, &MainMenu::onNewGameConfirmed);
dialog->eventCancelClicked.clear();
}
} }
else else

View file

@ -32,6 +32,7 @@ namespace MWGui
std::map<std::string, MWGui::ImageButton*> mButtons; std::map<std::string, MWGui::ImageButton*> mButtons;
void onButtonClicked (MyGUI::Widget* sender); void onButtonClicked (MyGUI::Widget* sender);
void onNewGameConfirmed();
void updateMenu(); void updateMenu();