//----------------------------------------------------------------------------------------- CBaseEditor *CSkyxEditorFactory::CreateObject(CBaseEditor **parent, OgitorsPropertyValueMap ¶ms) { OgitorsRoot *ogroot = OgitorsRoot::getSingletonPtr(); Ogre::ResourceGroupManager *mngr = Ogre::ResourceGroupManager::getSingletonPtr(); Ogre::String value = ogroot->GetProjectOptions()->ProjectDir + "/SkyX/"; CSkyxEditor *object = OGRE_NEW CSkyxEditor(this); if(params.find("init") != params.end()) { Ogre::String dirname = OgitorsUtils::QualifyPath(value); OgitorsSystem::getSingletonPtr()->MakeDirectory(dirname); Ogre::String copydir = OgitorsUtils::GetEditorResourcesPath() + "/SKYX/*"; OgitorsSystem::getSingletonPtr()->CopyFilesEx(copydir,dirname); params.erase(params.find("init")); } object->createProperties(params); object->mParentEditor->init(*parent); object->load(); object->update(0); mInstanceCount++; return object; }
//----------------------------------------------------------------------------------------- CBaseEditor *CSkyxEditorFactory::CreateObject(CBaseEditor **parent, OgitorsPropertyValueMap ¶ms) { OgitorsRoot *ogroot = OgitorsRoot::getSingletonPtr(); Ogre::String value = "/SkyX"; OFS::OfsPtr& mFile = OgitorsRoot::getSingletonPtr()->GetProjectFile(); CSkyxEditor *editor = OGRE_NEW CSkyxEditor(this); if(params.find("init") != params.end()) { mFile->createDirectory(value.c_str()); Ogre::String copydir = OgitorsUtils::GetEditorResourcesPath() + "/SkyX/"; OgitorsUtils::CopyDirOfs(copydir, value + "/"); params.erase(params.find("init")); } editor->createProperties(params); editor->mParentEditor->init(*parent); editor->load(); editor->update(0); mInstanceCount++; return editor; }
//---------------------------------------------------------------------------- void CSkyxEditorFactory::DestroyObject(CBaseEditor *object) { CSkyxEditor *SKYXOBJECT = static_cast<CSkyxEditor*>(object); SKYXOBJECT->unLoad(); SKYXOBJECT->destroyAllChildren(); if(SKYXOBJECT->getName() != "") OgitorsRoot::getSingletonPtr()->UnRegisterObjectName(SKYXOBJECT->getName(), SKYXOBJECT); OGRE_DELETE SKYXOBJECT; mInstanceCount--; }
//---------------------------------------------------------------------------- void CSkyxEditorFactory::DestroyObject(CBaseEditor *object) { CSkyxEditor *editor = static_cast<CSkyxEditor*>(object); editor->unLoad(); editor->destroyAllChildren(); if(editor->getName() != "") OgitorsRoot::getSingletonPtr()->UnRegisterObjectName(editor->getName(), editor); Ogitors::OgitorsSystem* mSystem = Ogitors::OgitorsSystem::getSingletonPtr(); LoadState state = OgitorsRoot::getSingletonPtr()->GetLoadState(); if(state != LS_UNLOADED && DLGRET_YES == mSystem->DisplayMessageDialog(OTR("Should the 'SkyX' folder be removed from the OFS project file?"), Ogitors::DLGTYPE_YESNO)) { OFS::OfsPtr& mFile = OgitorsRoot::getSingletonPtr()->GetProjectFile(); mFile->deleteDirectory("/SkyX", true); } OGRE_DELETE editor; mInstanceCount--; }