From 5342bd77f15e69af807b9989cf7d9a6d3528a8a1 Mon Sep 17 00:00:00 2001 From: Jan-Peter Nilsson Date: Sun, 2 Jan 2011 16:43:13 +0100 Subject: [PATCH] Use one event with a parameters instead of four events to tell with dialog we want to see --- apps/openmw/mwgui/review.cpp | 8 ++--- apps/openmw/mwgui/review.hpp | 29 +++++---------- apps/openmw/mwgui/window_manager.cpp | 54 +++++++++------------------- apps/openmw/mwgui/window_manager.hpp | 5 +-- 4 files changed, 31 insertions(+), 65 deletions(-) diff --git a/apps/openmw/mwgui/review.cpp b/apps/openmw/mwgui/review.cpp index 74632134a1..a68564ca6b 100644 --- a/apps/openmw/mwgui/review.cpp +++ b/apps/openmw/mwgui/review.cpp @@ -352,20 +352,20 @@ void ReviewDialog::onBackClicked(MyGUI::Widget* _sender) void ReviewDialog::onNameClicked(MyGUI::Widget* _sender) { - eventNameActivated(); + eventActivateDialog(NAME_DIALOG); } void ReviewDialog::onRaceClicked(MyGUI::Widget* _sender) { - eventRaceActivated(); + eventActivateDialog(RACE_DIALOG); } void ReviewDialog::onClassClicked(MyGUI::Widget* _sender) { - eventClassActivated(); + eventActivateDialog(CLASS_DIALOG); } void ReviewDialog::onBirthSignClicked(MyGUI::Widget* _sender) { - eventBirthSignActivated(); + eventActivateDialog(BIRTHSIGN_DIALOG); } diff --git a/apps/openmw/mwgui/review.hpp b/apps/openmw/mwgui/review.hpp index 25a183f653..e81bb2290d 100644 --- a/apps/openmw/mwgui/review.hpp +++ b/apps/openmw/mwgui/review.hpp @@ -22,6 +22,12 @@ namespace MWGui class ReviewDialog : public WindowBase { public: + enum Dialogs { + NAME_DIALOG, + RACE_DIALOG, + CLASS_DIALOG, + BIRTHSIGN_DIALOG + }; typedef std::vector SkillList; ReviewDialog(MWWorld::Environment& environment); @@ -44,6 +50,7 @@ namespace MWGui // Events typedef delegates::CDelegate0 EventHandle_Void; + typedef delegates::CDelegate1 EventHandle_Int; /** Event : Back button clicked.\n signature : void method()\n @@ -54,26 +61,8 @@ namespace MWGui signature : void method()\n */ EventHandle_Void eventDone; - - /** Event : Activate name dialog.\n - signature : void method()\n - */ - EventHandle_Void eventNameActivated; - - /** Event : Activate race dialog.\n - signature : void method()\n - */ - EventHandle_Void eventRaceActivated; - - /** Event : Activate class dialog.\n - signature : void method()\n - */ - EventHandle_Void eventClassActivated; - - /** Event : Activate birth sign dialog.\n - signature : void method()\n - */ - EventHandle_Void eventBirthSignActivated; + + EventHandle_Int eventActivateDialog; protected: void onOkClicked(MyGUI::Widget* _sender); diff --git a/apps/openmw/mwgui/window_manager.cpp b/apps/openmw/mwgui/window_manager.cpp index 13d340039b..d70ebebf5b 100644 --- a/apps/openmw/mwgui/window_manager.cpp +++ b/apps/openmw/mwgui/window_manager.cpp @@ -297,12 +297,7 @@ void WindowManager::updateVisible() reviewDialog->eventDone = MyGUI::newDelegate(this, &WindowManager::onReviewDialogDone); reviewDialog->eventBack = MyGUI::newDelegate(this, &WindowManager::onReviewDialogBack); - - reviewDialog->eventNameActivated = MyGUI::newDelegate(this, &WindowManager::onNameDialogActivate); - reviewDialog->eventRaceActivated = MyGUI::newDelegate(this, &WindowManager::onRaceDialogActivate); - reviewDialog->eventClassActivated = MyGUI::newDelegate(this, &WindowManager::onClassDialogActivate); - reviewDialog->eventBirthSignActivated = MyGUI::newDelegate(this, &WindowManager::onBirthSignDialogActivate); - + reviewDialog->eventActivateDialog = MyGUI::newDelegate(this, &WindowManager::onReviewActivateDialog); reviewDialog->open(); return; } @@ -968,39 +963,24 @@ void WindowManager::onReviewDialogBack() setGuiMode(GM_Birth); } -void WindowManager::onNameDialogActivate() +void WindowManager::onReviewActivateDialog(int parDialog) { if (reviewDialog) removeDialog(reviewDialog); - reviewNext = true; - setGuiMode(GM_Name); + + switch(parDialog) + { + case ReviewDialog::NAME_DIALOG: + setGuiMode(GM_Name); + break; + case ReviewDialog::RACE_DIALOG: + setGuiMode(GM_Race); + break; + case ReviewDialog::CLASS_DIALOG: + setGuiMode(GM_Class); + break; + case ReviewDialog::BIRTHSIGN_DIALOG: + setGuiMode(GM_Birth); + }; } - -void WindowManager::onRaceDialogActivate() -{ - if (reviewDialog) - removeDialog(reviewDialog); - - reviewNext = true; - setGuiMode(GM_Race); -} - -void WindowManager::onClassDialogActivate() -{ - if (reviewDialog) - removeDialog(reviewDialog); - - reviewNext = true; - setGuiMode(GM_Class); -} - -void WindowManager::onBirthSignDialogActivate() -{ - if (reviewDialog) - removeDialog(reviewDialog); - - reviewNext = true; - setGuiMode(GM_Birth); -} - diff --git a/apps/openmw/mwgui/window_manager.hpp b/apps/openmw/mwgui/window_manager.hpp index cfbe066587..b24ebce82e 100644 --- a/apps/openmw/mwgui/window_manager.hpp +++ b/apps/openmw/mwgui/window_manager.hpp @@ -291,10 +291,7 @@ namespace MWGui // Character generation: Review dialog void onReviewDialogDone(); void onReviewDialogBack(); - void onNameDialogActivate(); - void onRaceDialogActivate(); - void onClassDialogActivate(); - void onBirthSignDialogActivate(); + void onReviewActivateDialog(int parDialog); }; template