void MYGUIManager::setupResources() { MyGUI::xml::Document doc; if ( !_platform || !doc.open(_resourcePathFile) ) doc.getLastError(); MyGUI::xml::ElementPtr root = doc.getRoot(); if ( root==nullptr || root->getName()!="Paths" ) return; MyGUI::xml::ElementEnumerator node = root->getElementEnumerator(); while ( node.next() ) { if ( node->getName()=="Path" ) { bool root = false, recursive = false; if (!node->findAttribute("root").empty()) { root = MyGUI::utility::parseBool( node->findAttribute("root") ); if ( root ) _rootMedia = node->getContent(); } if (!node->findAttribute("recursive").empty()) { recursive = MyGUI::utility::parseBool(node->findAttribute("recursive")); } _platform->getDataManagerPtr()->addResourceLocation(node->getContent(), recursive); } } }
void BaseManager::setupResources() { MyGUI::xml::Document doc; if (!doc.open(std::string("resources.xml"))) doc.getLastError(); MyGUI::xml::ElementPtr root = doc.getRoot(); if (root == nullptr || root->getName() != "Paths") return; MyGUI::xml::ElementEnumerator node = root->getElementEnumerator(); while (node.next()) { if (node->getName() == "Path") { if (node->findAttribute("root") != "") { bool root = MyGUI::utility::parseBool(node->findAttribute("root")); if (root) mRootMedia = node->getContent(); } addResourceLocation(node->getContent(), false); } } addResourceLocation(getRootMedia() + "/Common/Base"); }
//-------------------------------------------------------------------------------- void System::Setup() { MyGUI::xml::Document doc; if (!doc.open(std::string("resources.xml"))) doc.getLastError(); MyGUI::xml::ElementPtr root = doc.getRoot(); if (root == nullptr || root->getName() != "Paths") return; MyGUI::xml::ElementEnumerator node = root->getElementEnumerator(); while (node.next()) { if (node->getName() == "Path") { bool root = false; if (node->findAttribute("root") != "") { root = MyGUI::utility::parseBool(node->findAttribute("root")); if (root) mRootMedia = node->getContent(); } mPlatform->getDataManagerPtr()->addResourceLocation(node->getContent(), false); } } }
void SettingsManager::loadSettings(const MyGUI::UString& _fileName, bool _internal) { std::string _instance = "Editor"; MyGUI::xml::Document doc; if (_internal) { MyGUI::DataStreamHolder data = MyGUI::DataManager::getInstance().getData(_fileName); if (data.getData() != nullptr) { if (!doc.open(data.getData())) { MYGUI_LOGGING(LogSection, Error, _instance << " : " << doc.getLastError()); return; } } } else { if (!doc.open(_fileName)) { MYGUI_LOGGING(LogSection, Error, _instance << " : " << doc.getLastError()); return; } } MyGUI::xml::ElementPtr root = doc.getRoot(); if (!root || (root->getName() != "MyGUI")) { MYGUI_LOGGING(LogSection, Error, _instance << " : '" << _fileName << "', tag 'MyGUI' not found"); return; } std::string type; if (root->findAttribute("type", type)) { if (type == "Settings") { // берем детей и крутимся MyGUI::xml::ElementEnumerator field = root->getElementEnumerator(); while (field.next()) loadSector(field.current()); } } }
void FontPanel::saveFontTTFXml(const std::string& _fontName, const std::string& _fileName) { MyGUI::xml::Document document; document.createDeclaration(); MyGUI::xml::ElementPtr root = document.createRoot("MyGUI"); generateFontTTFXml(root, _fontName); if (document.save(_fileName)) MyGUI::Message::createMessageBox("Message", "success", _fileName, MyGUI::MessageBoxStyle::Ok | MyGUI::MessageBoxStyle::IconInfo); else MyGUI::Message::createMessageBox("Message", "error", document.getLastError(), MyGUI::MessageBoxStyle::Ok | MyGUI::MessageBoxStyle::IconError); }
void EditorState::load() { SkinManager::getInstance().clear(); MyGUI::xml::Document doc; if (doc.open(mFileName)) { bool result = false; MyGUI::xml::Element* root = doc.getRoot(); if (root->getName() == "Root") { MyGUI::xml::ElementEnumerator nodes = root->getElementEnumerator(); while (nodes.next("SkinManager")) { SkinManager::getInstance().deserialization(nodes.current(), MyGUI::Version()); result = true; if (mFileName != mDefaultFileName) RecentFilesManager::getInstance().addRecentFile(mFileName); break; } } if (!result) { /*MyGUI::Message* message =*/ MessageBoxManager::getInstance().create( replaceTags("Error"), replaceTags("MessageIncorrectFileFormat"), MyGUI::MessageBoxStyle::IconError | MyGUI::MessageBoxStyle::Yes); mFileName = mDefaultFileName; addUserTag("CurrentFileName", mFileName); updateCaption(); } } else { /*MyGUI::Message* message =*/ MessageBoxManager::getInstance().create( replaceTags("Error"), doc.getLastError(), MyGUI::MessageBoxStyle::IconError | MyGUI::MessageBoxStyle::Yes); } ActionManager::getInstance().setChanges(false); }
void SettingsManager::saveSettings(const MyGUI::UString& _fileName) { std::string _instance = "Editor"; MyGUI::xml::Document doc; doc.createDeclaration(); MyGUI::xml::ElementPtr root = doc.createRoot("MyGUI"); root->addAttribute("type", "Settings"); saveSectors(root); if (!doc.save(_fileName)) { MYGUI_LOGGING(LogSection, Error, _instance << " : " << doc.getLastError()); return; } }
void EditorState::saveSettings(const MyGUI::UString& _fileName) { std::string _instance = "Editor"; MyGUI::xml::Document doc; doc.createDeclaration(); MyGUI::xml::ElementPtr root = doc.createRoot("MyGUI"); root->addAttribute("type", "Settings"); mPropertiesPanelView->save(root); mSettingsWindow->save(root); mWidgetsWindow->save(root); mMetaSolutionWindow->save(root); // cleanup for duplicates std::reverse(recentFiles.begin(), recentFiles.end()); for (size_t i = 0; i < recentFiles.size(); ++i) recentFiles.erase(std::remove(recentFiles.begin() + i + 1, recentFiles.end(), recentFiles[i]), recentFiles.end()); // remove old files while (recentFiles.size() > MAX_RECENT_FILES) recentFiles.pop_back(); std::reverse(recentFiles.begin(), recentFiles.end()); for (std::vector<MyGUI::UString>::iterator iter = recentFiles.begin(); iter != recentFiles.end(); ++iter) { MyGUI::xml::ElementPtr nodeProp = root->createChild("RecentFile"); nodeProp->addAttribute("name", *iter); } for (std::vector<MyGUI::UString>::iterator iter = additionalPaths.begin(); iter != additionalPaths.end(); ++iter) { MyGUI::xml::ElementPtr nodeProp = root->createChild("AdditionalPath"); nodeProp->addAttribute("name", *iter); } if (!doc.save(_fileName)) { MYGUI_LOGGING(LogSection, Error, _instance << " : " << doc.getLastError()); return; } }
void FontPanel::notifyMouseButtonClick(MyGUI::Widget* _widget) { // шрифто?нету if (mComboFont->getOnlyText().empty()) return; if (mEditSaveFileName->getOnlyText().empty() && _widget == mButtonSave) return; MyGUI::xml::Document document; document.createDeclaration(); MyGUI::xml::ElementPtr root = document.createRoot("MyGUI"); generateFontTTFXml(root); if (_widget == mButtonSave) { if (!document.save(mEditSaveFileName->getOnlyText() + ".xml")) { /*MyGUI::Message* message =*/ MyGUI::Message::createMessageBox("Message", "error", document.getLastError(), MyGUI::MessageBoxStyle::Ok | MyGUI::MessageBoxStyle::IconError); } else { /*MyGUI::Message* message =*/ MyGUI::Message::createMessageBox("Message", "success", mEditSaveFileName->getOnlyText() + ".xml", MyGUI::MessageBoxStyle::Ok | MyGUI::MessageBoxStyle::IconInfo); } MyGUI::IFont* font = MyGUI::FontManager::getInstance().getByName(mFontName); MyGUI::ITexture* texture = font->getTextureFont(); texture->saveToFile(mEditSaveFileName->getOnlyText() + ".png"); } else if (_widget == mButtonGenerate) { MyGUI::ResourceManager& manager = MyGUI::ResourceManager::getInstance(); if (manager.isExist(mFontName)) { manager.removeByName(mFontName); } MyGUI::ResourceManager::getInstance().loadFromXmlNode(root, "", MyGUI::Version()); MyGUI::IResource* resource = manager.getByName(mFontName, false); MYGUI_ASSERT(resource != nullptr, "Could not find font '" << mFontName << "'"); MyGUI::IFont* font = resource->castType<MyGUI::IFont>(); // выво?реальног?размер?шрифта mFontHeight = font->getDefaultHeight(); mTextPix->setCaption(MyGUI::utility::toString("Height of a font is ", mFontHeight, " pixels")); mFontView->setFontName(mFontName); mTextureView->setFontName(mFontName); } }
bool BaseManager::loadBase( const string& filename, LuaVector& doScript, LuaVector& locationScript, LuaVector& loadScript ) { MyGUI::xml::Document doc; if( !doc.open(mResourcePath+filename) ) { if( !doc.open(filename) ) { MyGUI::IDataStream* pdata = MyGUI::DataManager::getInstance().getData(filename); if( pdata ) { if( !doc.open(pdata) ) { MyGUI::DataManager::getInstance().freeData(pdata); ERROR_LOG(doc.getLastError()); return false; } MyGUI::DataManager::getInstance().freeData(pdata); } else { ERROR_LOG(doc.getLastError()); return false; } } } MyGUI::xml::ElementPtr root = doc.getRoot(); if (root == nullptr || root->getName() != "base") return false; // LuaVector groups; MyGUI::xml::ElementEnumerator node = root->getElementEnumerator(); while( node.next() ) { string name = node->getName(); if( name == "script" ) { string lua; if( node->findAttribute("do",lua) ) doScript.push_back( lua ); //等到LuaManager被创建后在一起执行 if( node->findAttribute("location",lua) ) { if( find(locationScript.begin(),locationScript.end(),lua)==locationScript.end() ) locationScript.push_back( lua ); } if( node->findAttribute("load",lua) ) { loadScript.push_back(lua); } } else if( name == "group" ) { string name; if( node->findAttribute("name",name) ) { // if( find(groups.begin(),groups.end(),name)==groups.end() ) // groups.push_back(name); MyGUI::xml::ElementEnumerator child = node->getElementEnumerator(); while( child.next() ) { string type,location,recursive; if( child->getName() == "repository" ) { if( child->findAttribute("type",type) && child->findAttribute("recursive",recursive) && child->findAttribute("location",location) ) { //加入组 addGroupLocation(name,type,location,recursive=="true"?true:false); } } } } } } return true; }
//=================================================================================== void EditorState::loadSettings(const MyGUI::UString& _fileName, bool _internal) { std::string _instance = "Editor"; MyGUI::xml::Document doc; if (_internal) { MyGUI::IDataStream* data = MyGUI::DataManager::getInstance().getData(_fileName); if (data) { PtrHolder<MyGUI::IDataStream> holder = PtrHolder<MyGUI::IDataStream>(data); if (!doc.open(data)) { MYGUI_LOGGING(LogSection, Error, _instance << " : " << doc.getLastError()); return; } } } else { if (!doc.open(_fileName)) { MYGUI_LOGGING(LogSection, Error, _instance << " : " << doc.getLastError()); return; } } MyGUI::xml::ElementPtr root = doc.getRoot(); if (!root || (root->getName() != "MyGUI")) { MYGUI_LOGGING(LogSection, Error, _instance << " : '" << _fileName << "', tag 'MyGUI' not found"); return; } std::string type; if (root->findAttribute("type", type)) { if (type == "Settings") { // берем детей и крутимс¤ MyGUI::xml::ElementEnumerator field = root->getElementEnumerator(); while (field.next()) { if (field->getName() == "PropertiesPanelView") mPropertiesPanelView->load(field); else if (field->getName() == "SettingsWindow") mSettingsWindow->load(field); else if (field->getName() == "WidgetsWindow") mWidgetsWindow->load(field); else if (field->getName() == "MetaSolutionWindow") { if (isNeedSolutionLoad(field)) { clearWidgetWindow(); mMetaSolutionWindow->load(field); } } else if (field->getName() == "RecentFile") { std::string name; if (!field->findAttribute("name", name)) continue; recentFiles.push_back(name); } else if (field->getName() == "AdditionalPath") { std::string name; if (!field->findAttribute("name", name)) continue; additionalPaths.push_back(name); } } } } }