MyGUI  3.2.1
MyGUI_SubWidgetManager.cpp
Go to the documentation of this file.
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