1 /*! 2 @file 3 @author Albert Semenov 4 @date 08/2010 5 */ 6 7 #include "Precompiled.h" 8 #include "TestState.h" 9 #include "CommandManager.h" 10 #include "StateManager.h" 11 #include "DialogManager.h" 12 #include "MessageBoxManager.h" 13 #include "EditorWidgets.h" 14 #include "WidgetSelectorManager.h" 15 #include "FactoryManager.h" 16 17 namespace tools 18 { 19 FACTORY_ITEM_ATTRIBUTE(TestState)20 FACTORY_ITEM_ATTRIBUTE(TestState) 21 22 TestState::TestState() : 23 mTestLayout(nullptr), 24 mBackgroundControl(nullptr) 25 { 26 CommandManager::getInstance().getEvent("Command_Quit")->connect(this, &TestState::commandQuit); 27 CommandManager::getInstance().getEvent("Command_Test")->connect(this, &TestState::command_Test); 28 } 29 ~TestState()30 TestState::~TestState() 31 { 32 deleteTestLayout(); 33 } 34 initState()35 void TestState::initState() 36 { 37 WidgetSelectorManager::getInstance().saveSelectedWidget(); 38 WidgetSelectorManager::getInstance().setSelectedWidget(nullptr); 39 40 mTestLayout = EditorWidgets::getInstance().savexmlDocument(); 41 EditorWidgets::getInstance().clear(); 42 EditorWidgets::getInstance().loadxmlDocument(mTestLayout, true); 43 44 mBackgroundControl = new BackgroundControl(); 45 } 46 cleanupState()47 void TestState::cleanupState() 48 { 49 EditorWidgets::getInstance().clear(); 50 EditorWidgets::getInstance().loadxmlDocument(mTestLayout, false); 51 52 deleteTestLayout(); 53 54 WidgetSelectorManager::getInstance().restoreSelectedWidget(); 55 56 delete mBackgroundControl; 57 mBackgroundControl = nullptr; 58 } 59 pauseState()60 void TestState::pauseState() 61 { 62 } 63 resumeState()64 void TestState::resumeState() 65 { 66 } 67 commandQuit(const MyGUI::UString & _commandName,bool & _result)68 void TestState::commandQuit(const MyGUI::UString& _commandName, bool& _result) 69 { 70 if (MessageBoxManager::getInstance().hasAny()) 71 return; 72 73 if (!StateManager::getInstance().getStateActivate(this)) 74 return; 75 76 StateManager::getInstance().stateEvent("TestState", "Exit"); 77 78 _result = true; 79 } 80 deleteTestLayout()81 void TestState::deleteTestLayout() 82 { 83 if (mTestLayout != nullptr) 84 { 85 delete mTestLayout; 86 mTestLayout = nullptr; 87 } 88 } 89 command_Test(const MyGUI::UString & _commandName,bool & _result)90 void TestState::command_Test(const MyGUI::UString& _commandName, bool& _result) 91 { 92 if (DialogManager::getInstance().getAnyDialog()) 93 return; 94 95 if (MessageBoxManager::getInstance().hasAny()) 96 return; 97 98 StateManager::getInstance().stateEvent("EditorState", "Test"); 99 100 _result = true; 101 } 102 103 } 104