MyGUI
3.0.3
|
00001 00007 /* 00008 This file is part of MyGUI. 00009 00010 MyGUI is free software: you can redistribute it and/or modify 00011 it under the terms of the GNU Lesser General Public License as published by 00012 the Free Software Foundation, either version 3 of the License, or 00013 (at your option) any later version. 00014 00015 MyGUI is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU Lesser General Public License for more details. 00019 00020 You should have received a copy of the GNU Lesser General Public License 00021 along with MyGUI. If not, see <http://www.gnu.org/licenses/>. 00022 */ 00023 #include "MyGUI_Precompiled.h" 00024 #include "MyGUI_SubWidgetManager.h" 00025 #include "MyGUI_FactoryManager.h" 00026 #include "MyGUI_CommonStateInfo.h" 00027 00028 #include "MyGUI_SubSkin.h" 00029 #include "MyGUI_MainSkin.h" 00030 #include "MyGUI_RotatingSkin.h" 00031 #include "MyGUI_SimpleText.h" 00032 #include "MyGUI_EditText.h" 00033 #include "MyGUI_RawRect.h" 00034 #include "MyGUI_TileRect.h" 00035 00036 namespace MyGUI 00037 { 00038 00039 MYGUI_INSTANCE_IMPLEMENT( SubWidgetManager ) 00040 00041 void SubWidgetManager::initialise() 00042 { 00043 MYGUI_ASSERT(!mIsInitialise, INSTANCE_TYPE_NAME << " initialised twice"); 00044 MYGUI_LOG(Info, "* Initialise: " << INSTANCE_TYPE_NAME); 00045 00046 FactoryManager& factory = FactoryManager::getInstance(); 00047 00048 factory.registerFactory<SubSkinStateInfo>("BasisSkin/State", "SubSkin"); 00049 factory.registerFactory<SubSkinStateInfo>("BasisSkin/State", "MainSkin"); 00050 factory.registerFactory<SubSkinStateInfo>("BasisSkin/State", "RotatingSkin"); 00051 factory.registerFactory<SubSkinStateInfo>("BasisSkin/State", "RawRect"); 00052 factory.registerFactory<TileRectStateInfo>("BasisSkin/State", "TileRect"); 00053 factory.registerFactory<EditTextStateInfo>("BasisSkin/State", "EditText"); 00054 factory.registerFactory<EditTextStateInfo>("BasisSkin/State", "SimpleText"); 00055 00056 factory.registerFactory<SubSkin>("BasisSkin"); 00057 factory.registerFactory<MainSkin>("BasisSkin"); 00058 factory.registerFactory<RotatingSkin>("BasisSkin"); 00059 factory.registerFactory<RawRect>("BasisSkin"); 00060 factory.registerFactory<TileRect>("BasisSkin"); 00061 factory.registerFactory<EditText>("BasisSkin"); 00062 factory.registerFactory<SimpleText>("BasisSkin"); 00063 00064 MYGUI_LOG(Info, INSTANCE_TYPE_NAME << " successfully initialized"); 00065 mIsInitialise = true; 00066 } 00067 00068 void SubWidgetManager::shutdown() 00069 { 00070 if (!mIsInitialise) return; 00071 MYGUI_LOG(Info, "* Shutdown: " << INSTANCE_TYPE_NAME); 00072 00073 FactoryManager& factory = FactoryManager::getInstance(); 00074 00075 factory.unregisterFactory("BasisSkin/State", "SubSkin"); 00076 factory.unregisterFactory("BasisSkin/State", "MainSkin"); 00077 factory.unregisterFactory("BasisSkin/State", "RotatingSkin"); 00078 factory.unregisterFactory("BasisSkin/State", "RawRect"); 00079 factory.unregisterFactory("BasisSkin/State", "TileRect"); 00080 factory.unregisterFactory("BasisSkin/State", "EditText"); 00081 factory.unregisterFactory("BasisSkin/State", "SimpleText"); 00082 00083 factory.unregisterFactory<SubSkin>("BasisSkin"); 00084 factory.unregisterFactory<MainSkin>("BasisSkin"); 00085 factory.unregisterFactory<RotatingSkin>("BasisSkin"); 00086 factory.unregisterFactory<RawRect>("BasisSkin"); 00087 factory.unregisterFactory<TileRect>("BasisSkin"); 00088 factory.unregisterFactory<EditText>("BasisSkin"); 00089 factory.unregisterFactory<SimpleText>("BasisSkin"); 00090 00091 MYGUI_LOG(Info, INSTANCE_TYPE_NAME << " successfully shutdown"); 00092 mIsInitialise = false; 00093 } 00094 00095 } // namespace MyGUI