MyGUI
3.2.1
|
00001 /* 00002 * This source file is part of MyGUI. For the latest info, see http://mygui.info/ 00003 * Distributed under the MIT License 00004 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT) 00005 */ 00006 00007 #include "MyGUI_Precompiled.h" 00008 #include "MyGUI_SubWidgetManager.h" 00009 #include "MyGUI_FactoryManager.h" 00010 #include "MyGUI_CommonStateInfo.h" 00011 00012 #include "MyGUI_SubSkin.h" 00013 #include "MyGUI_MainSkin.h" 00014 #include "MyGUI_PolygonalSkin.h" 00015 #include "MyGUI_RotatingSkin.h" 00016 #include "MyGUI_SimpleText.h" 00017 #include "MyGUI_EditText.h" 00018 #include "MyGUI_TileRect.h" 00019 00020 namespace MyGUI 00021 { 00022 00023 template <> SubWidgetManager* Singleton<SubWidgetManager>::msInstance = nullptr; 00024 template <> const char* Singleton<SubWidgetManager>::mClassTypeName = "SubWidgetManager"; 00025 00026 SubWidgetManager::SubWidgetManager() : 00027 mIsInitialise(false), 00028 mCategoryName("BasisSkin"), 00029 mStateCategoryName("BasisSkin/State") 00030 { 00031 } 00032 00033 void SubWidgetManager::initialise() 00034 { 00035 MYGUI_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); 00036 MYGUI_LOG(Info, "* Initialise: " << getClassTypeName()); 00037 00038 FactoryManager& factory = FactoryManager::getInstance(); 00039 00040 factory.registerFactory<SubSkinStateInfo>(mStateCategoryName, "SubSkin"); 00041 factory.registerFactory<SubSkinStateInfo>(mStateCategoryName, "MainSkin"); 00042 factory.registerFactory<SubSkinStateInfo>(mStateCategoryName, "PolygonalSkin"); 00043 factory.registerFactory<RotatingSkinStateInfo>(mStateCategoryName, "RotatingSkin"); 00044 factory.registerFactory<TileRectStateInfo>(mStateCategoryName, "TileRect"); 00045 factory.registerFactory<EditTextStateInfo>(mStateCategoryName, "EditText"); 00046 factory.registerFactory<EditTextStateInfo>(mStateCategoryName, "SimpleText"); 00047 00048 factory.registerFactory<SubSkin>(mCategoryName); 00049 factory.registerFactory<MainSkin>(mCategoryName); 00050 factory.registerFactory<PolygonalSkin>(mCategoryName); 00051 factory.registerFactory<RotatingSkin>(mCategoryName); 00052 factory.registerFactory<TileRect>(mCategoryName); 00053 factory.registerFactory<EditText>(mCategoryName); 00054 factory.registerFactory<SimpleText>(mCategoryName); 00055 00056 MYGUI_LOG(Info, getClassTypeName() << " successfully initialized"); 00057 mIsInitialise = true; 00058 } 00059 00060 void SubWidgetManager::shutdown() 00061 { 00062 MYGUI_ASSERT(mIsInitialise, getClassTypeName() << " is not initialised"); 00063 MYGUI_LOG(Info, "* Shutdown: " << getClassTypeName()); 00064 00065 FactoryManager& factory = FactoryManager::getInstance(); 00066 00067 factory.unregisterFactory(mStateCategoryName, "SubSkin"); 00068 factory.unregisterFactory(mStateCategoryName, "MainSkin"); 00069 factory.unregisterFactory(mStateCategoryName, "PolygonalSkin"); 00070 factory.unregisterFactory(mStateCategoryName, "RotatingSkin"); 00071 factory.unregisterFactory(mStateCategoryName, "TileRect"); 00072 factory.unregisterFactory(mStateCategoryName, "EditText"); 00073 factory.unregisterFactory(mStateCategoryName, "SimpleText"); 00074 00075 factory.unregisterFactory<SubSkin>(mCategoryName); 00076 factory.unregisterFactory<MainSkin>(mCategoryName); 00077 factory.unregisterFactory<PolygonalSkin>(mCategoryName); 00078 factory.unregisterFactory<RotatingSkin>(mCategoryName); 00079 factory.unregisterFactory<TileRect>(mCategoryName); 00080 factory.unregisterFactory<EditText>(mCategoryName); 00081 factory.unregisterFactory<SimpleText>(mCategoryName); 00082 00083 MYGUI_LOG(Info, getClassTypeName() << " successfully shutdown"); 00084 mIsInitialise = false; 00085 } 00086 00087 const std::string& SubWidgetManager::getCategoryName() const 00088 { 00089 return mCategoryName; 00090 } 00091 00092 const std::string& SubWidgetManager::getStateCategoryName() const 00093 { 00094 return mStateCategoryName; 00095 } 00096 00097 } // namespace MyGUI