本文整理汇总了C++中mygui::xml::ElementPtr::addAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ ElementPtr::addAttribute方法的具体用法?C++ ElementPtr::addAttribute怎么用?C++ ElementPtr::addAttribute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mygui::xml::ElementPtr
的用法示例。
在下文中一共展示了ElementPtr::addAttribute方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateFontTTFXml
void FontPanel::generateFontTTFXml(MyGUI::xml::ElementPtr _root)
{
_root->addAttribute("type", "Resource");
_root->addAttribute("version", "1.1");
MyGUI::xml::ElementPtr node = _root->createChild("Resource");
node->addAttribute("type", "ResourceTrueTypeFont");
node->addAttribute("name", mFontName);
addProperty(node, "Source", mComboFont->getOnlyText());
addProperty(node, "Size", MyGUI::utility::parseValue<int>(mEditSize->getOnlyText()));
addProperty(node, "Resolution", MyGUI::utility::parseValue<int>(mEditResolution->getOnlyText()));
addProperty(node, "Antialias", MyGUI::utility::parseValue<bool>(mComboAntialias->getOnlyText()));
addProperty(node, "SpaceWidth", MyGUI::utility::parseValue<int>(mEditSpace->getOnlyText()));
addProperty(node, "TabWidth", MyGUI::utility::parseValue<int>(mEditTab->getOnlyText()));
addProperty(node, "CursorWidth", MyGUI::utility::parseValue<int>(mEditCursor->getOnlyText()));
addProperty(node, "Distance", MyGUI::utility::parseValue<int>(mEditDistance->getOnlyText()));
addProperty(node, "OffsetHeight", MyGUI::utility::parseValue<int>(mEditOffset->getOnlyText()));
MyGUI::xml::ElementPtr node_codes = node->createChild("Codes");
//if (mEditRange1->getOnlyText() != "")
// node_codes->createChild("Code")->addAttribute("range", mEditRange1->getOnlyText());
//if (mEditRange2->getOnlyText() != "")
// node_codes->createChild("Code")->addAttribute("range", mEditRange2->getOnlyText());
for( int i = 1; i <= _countof(mEditRange); ++i )
{
if (mEditRange[i]->getOnlyText() != "")
node_codes->createChild("Code")->addAttribute("range", mEditRange[i]->getOnlyText());
}
if (mEditHide->getOnlyText() != "")
node_codes->createChild("Code")->addAttribute("hide", mEditHide->getOnlyText());
}
示例2: save
void PropertiesPanelView::save(MyGUI::xml::ElementPtr root)
{
root = root->createChild("PropertiesPanelView");
MyGUI::xml::ElementPtr nodeProp;
for (VectorPanel::iterator iter = mPanels.begin(); iter != mPanels.end(); ++iter)
{
nodeProp = root->createChild("Property");
nodeProp->addAttribute("key", MyGUI::utility::toString("Panel","Minimized"));
nodeProp->addAttribute("value", (*iter)->getPanelCell()->isMinimized());
}
}
示例3: exportData
bool FontExportSerializer::exportData(const MyGUI::UString& _folderName, const MyGUI::UString& _fileName)
{
MyGUI::xml::Document document;
document.createDeclaration();
MyGUI::xml::ElementPtr root = document.createRoot("MyGUI");
root->addAttribute("type", "Resource");
root->addAttribute("version", "1.1");
DataPtr data = DataManager::getInstance().getRoot();
for (Data::VectorData::const_iterator child = data->getChilds().begin(); child != data->getChilds().end(); child ++)
{
generateFont((*child));
generateFontManualXml(root, _folderName, (*child));
}
return document.save(common::concatenatePath(_folderName, _fileName));
}
示例4: save
bool HotkeyManager::save( string xml )
{
MyGUI::xml::Document doc;
string path = Game::getSingleton().getResourcePath() + xml;
MyGUI::xml::ElementPtr root = doc.createRoot("HKS");
doc.createDeclaration();
MyGUI::xml::ElementPtr node;
for( HotkeyTable::iterator it = mHotkeys.begin();it!=mHotkeys.end();++it )
{
node = root->createChild("hotkey");
node->addAttribute("name",it->mName);
node->addAttribute("caption",it->mCaption);
node->addAttribute("tip",it->mTip);
node->addAttribute("key",it->mHotkey);
}
return doc.save( path );
}
示例5: saveJoint
/* 一组递归函数,用来保存
*/
void Framework::saveJoint(MyGUI::xml::ElementPtr node,Joint* joint,RigidPtr other)
{
node->addAttribute("type", joint->getTypeName());
joint->save(node);
MyGUI::xml::ElementPtr child = node->createChild("rigid");
RigidPtr rgp = joint->other(other);
if( rgp )
saveRigid(child,rgp,joint);
}
示例6: saveSettings
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;
}
}
示例7: generateFontManualXml
void FontExportSerializer::generateFontManualXml(MyGUI::xml::ElementPtr _root, const MyGUI::UString& _folderName, DataPtr _data)
{
MyGUI::IFont* resource = MyGUI::FontManager::getInstance().getByName(_data->getPropertyValue("FontName"));
MyGUI::ResourceTrueTypeFont* font = resource != nullptr ? resource->castType<MyGUI::ResourceTrueTypeFont>(false) : nullptr;
if (font != nullptr)
{
std::string textureName = _data->getPropertyValue("Name") + ".png";
MyGUI::ITexture* texture = font->getTextureFont();
if (texture == nullptr)
return;
texture->saveToFile(MyGUI::UString(common::concatenatePath(_folderName, MyGUI::UString(textureName))).asUTF8());
MyGUI::xml::ElementPtr node = _root->createChild("Resource");
node->addAttribute("type", "ResourceManualFont");
node->addAttribute("name", _data->getPropertyValue("Name"));
addProperty(node, "Source", textureName);
addProperty(node, "SourceSize", MyGUI::IntSize(texture->getWidth(), texture->getHeight()));
addProperty(node, "DefaultHeight", font->getDefaultHeight());
MyGUI::xml::Element* codes = node->createChild("Codes");
std::vector<std::pair<MyGUI::Char, MyGUI::Char> > codePointRanges = font->getCodePointRanges();
MyGUI::Char substituteCodePoint = font->getSubstituteCodePoint();
bool isCustomSubstituteCodePoint = substituteCodePoint != MyGUI::FontCodeType::NotDefined;
// Add all of the code points. Skip over the substitute code point -- unless it's been customized, in which case it
// needs to be added here as a regular code point and then at the end as a substitute code point.
for (std::vector<std::pair<MyGUI::Char, MyGUI::Char> >::const_iterator iter = codePointRanges.begin() ; iter != codePointRanges.end(); ++iter)
for (MyGUI::Char code = iter->first; code <= iter->second && code >= iter->first; ++code)
if (code != substituteCodePoint || isCustomSubstituteCodePoint)
addCode(codes, code, font, false);
// Always add the substitute code point last, even if it isn't the last one in the range.
addCode(codes, substituteCodePoint, font, true);
}
}
示例8: generateFontManualXml
void FontPanel::generateFontManualXml(MyGUI::xml::ElementPtr _root, const std::string& _textureName, const std::string& _fontName)
{
_root->addAttribute("type", "Resource");
_root->addAttribute("version", "1.1");
MyGUI::xml::ElementPtr node = _root->createChild("Resource");
node->addAttribute("type", "ResourceManualFont");
node->addAttribute("name", _fontName);
addProperty(node, "Source", _textureName);
addProperty(node, "DefaultHeight", mFontHeight);
MyGUI::IFont* font = MyGUI::FontManager::getInstance().getByName(mFontName);
MyGUI::xml::Element* codes = node->createChild("Codes");
addCode(codes, MyGUI::FontCodeType::Cursor, font);
addCode(codes, MyGUI::FontCodeType::Selected, font);
addCode(codes, MyGUI::FontCodeType::SelectedBack, font);
addCode(codes, 32, font);
addCode(codes, 9, font);
MyGUI::IntSize range1 = MyGUI::IntSize::parse(mEditRange1->getOnlyText());
MyGUI::IntSize range2 = MyGUI::IntSize::parse(mEditRange2->getOnlyText());
MyGUI::IntSize hide1 = MyGUI::IntSize::parse(mEditHide->getOnlyText());
for (int index = range1.width; index <= range1.height; ++ index)
{
if (index < hide1.width || index > hide1.height)
addCode(codes, index, font);
}
for (int index = range2.width; index <= range2.height; ++ index)
{
if (index < hide1.width || index > hide1.height)
addCode(codes, index, font);
}
}
示例9: saveSettings
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;
}
}
示例10: save
/*
注意:这里要保证没有循环连接
*/
void Framework::save( MyGUI::xml::ElementPtr node )
{
if( !mName.empty() )
node->addAttribute("name",mName);
//这里做检测保证框架没有循环连接的铰链
if(checkCycle())
{
WARNING_LOG("Framework have cycle.");
return;
}
RigidPtr body = getBodyRigid();
if(body)
{
MyGUI::xml::ElementPtr child = node->createChild("body");
saveRigid(child, body,nullptr);
}
}
示例11: saveToFile
void DemoKeeper::saveToFile(const std::string& _filename)
{
MyGUI::xml::Document doc;
// есть такой файл
if (!doc.open(_filename))
{
doc.clear();
}
doc.createDeclaration();
MyGUI::xml::ElementPtr root = doc.createRoot("AnimationGraph");
// сохраняем сами ноды
wraps::BaseGraphView::EnumeratorNode node = mGraphView->getNodeEnumerator();
while (node.next())
{
BaseAnimationNode* anim_node = dynamic_cast<BaseAnimationNode*>(node.current());
if (anim_node)
{
MyGUI::xml::ElementPtr node_type = root->createChild("Node");
node_type->addAttribute("type", anim_node->getType());
node_type->addAttribute("name", anim_node->getName());
anim_node->serialization(node_type);
}
}
// сохраняем соединения
node = mGraphView->getNodeEnumerator();
while (node.next())
{
BaseAnimationNode* anim_node = dynamic_cast<BaseAnimationNode*>(node.current());
if (anim_node && anim_node->isAnyConnection())
{
MyGUI::xml::ElementPtr connection = root->createChild("Connections");
connection->addAttribute("node", anim_node->getName());
wraps::EnumeratorConnection node_conn = anim_node->getConnectionEnumerator();
while (node_conn.next())
{
wraps::EnumeratorConnection conn = node_conn->getConnectionEnumerator();
while (conn.next())
{
BaseAnimationNode* anim_node2 = dynamic_cast<BaseAnimationNode*>(conn->getOwnerNode());
if (anim_node2)
{
MyGUI::xml::ElementPtr item = connection->createChild("Connection");
item->addAttribute("node", anim_node2->getName());
item->addAttribute("from", node_conn->getName());
item->addAttribute("to", conn->getName());
}
}
}
}
}
// сохраняем данные для редактора
MyGUI::xml::ElementPtr data = root->createChild("EditorData");
node = mGraphView->getNodeEnumerator();
while (node.next())
{
BaseAnimationNode* anim_node = dynamic_cast<BaseAnimationNode*>(node.current());
if (anim_node)
{
MyGUI::xml::ElementPtr item_data = data->createChild("Node");
item_data->addAttribute("name", anim_node->getName());
item_data->addAttribute("coord", anim_node->getCoord().print());
}
}
doc.save(_filename);
}
示例12: addProperty
void addProperty(MyGUI::xml::ElementPtr _node, const std::string& _name, Type _value)
{
MyGUI::xml::ElementPtr node = _node->createChild("Property");
node->addAttribute("key", _name);
node->addAttribute("value", _value);
}
示例13: save
void Rigid::save( MyGUI::xml::ElementPtr node )
{
VisualObject::save(node);
node->addAttribute("mass", mMassDensity);
}
示例14: loadFont
void FontLoader::loadFont(const std::string &fileName, bool exportToFile)
{
Ogre::DataStreamPtr file = Ogre::ResourceGroupManager::getSingleton().openResource(fileName);
float fontSize;
int one;
file->read(&fontSize, sizeof(fontSize));
file->read(&one, sizeof(int));
assert(one == 1);
file->read(&one, sizeof(int));
assert(one == 1);
char name_[284];
file->read(name_, sizeof(name_));
std::string name(name_);
GlyphInfo data[256];
file->read(data, sizeof(data));
file->close();
// Create the font texture
std::string bitmapFilename = "Fonts/" + std::string(name) + ".tex";
Ogre::DataStreamPtr bitmapFile = Ogre::ResourceGroupManager::getSingleton().openResource(bitmapFilename);
int width, height;
bitmapFile->read(&width, sizeof(int));
bitmapFile->read(&height, sizeof(int));
std::vector<Ogre::uchar> textureData;
textureData.resize(width*height*4);
bitmapFile->read(&textureData[0], width*height*4);
bitmapFile->close();
std::string resourceName;
if (name.size() >= 5 && Misc::StringUtils::ciEqual(name.substr(0, 5), "magic"))
resourceName = "Magic Cards";
else if (name.size() >= 7 && Misc::StringUtils::ciEqual(name.substr(0, 7), "century"))
resourceName = "Century Gothic";
else if (name.size() >= 7 && Misc::StringUtils::ciEqual(name.substr(0, 7), "daedric"))
resourceName = "Daedric";
else
return; // no point in loading it, since there is no way of using additional fonts
std::string textureName = name;
Ogre::Image image;
image.loadDynamicImage(&textureData[0], width, height, Ogre::PF_BYTE_RGBA);
Ogre::TexturePtr texture = Ogre::TextureManager::getSingleton().createManual(textureName,
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
Ogre::TEX_TYPE_2D,
width, height, 0, Ogre::PF_BYTE_RGBA);
texture->loadImage(image);
if (exportToFile)
image.save(resourceName + ".png");
// Register the font with MyGUI
MyGUI::ResourceManualFont* font = static_cast<MyGUI::ResourceManualFont*>(
MyGUI::FactoryManager::getInstance().createObject("Resource", "ResourceManualFont"));
// We need to emulate loading from XML because the data members are private as of mygui 3.2.0
MyGUI::xml::Document xmlDocument;
MyGUI::xml::ElementPtr root = xmlDocument.createRoot("ResourceManualFont");
root->addAttribute("name", resourceName);
MyGUI::xml::ElementPtr defaultHeight = root->createChild("Property");
defaultHeight->addAttribute("key", "DefaultHeight");
defaultHeight->addAttribute("value", fontSize);
MyGUI::xml::ElementPtr source = root->createChild("Property");
source->addAttribute("key", "Source");
source->addAttribute("value", std::string(textureName));
MyGUI::xml::ElementPtr codes = root->createChild("Codes");
for(int i = 0; i < 256; i++)
{
float x1 = data[i].top_left.x*width;
float y1 = data[i].top_left.y*height;
float w = data[i].top_right.x*width - x1;
float h = data[i].bottom_left.y*height - y1;
ToUTF8::Utf8Encoder encoder(mEncoding);
unsigned long unicodeVal = utf8ToUnicode(getUtf8(i, encoder, mEncoding));
MyGUI::xml::ElementPtr code = codes->createChild("Code");
code->addAttribute("index", unicodeVal);
code->addAttribute("coord", MyGUI::utility::toString(x1) + " "
+ MyGUI::utility::toString(y1) + " "
+ MyGUI::utility::toString(w) + " "
+ MyGUI::utility::toString(h));
code->addAttribute("advance", data[i].width);
code->addAttribute("bearing", MyGUI::utility::toString(data[i].kerning) + " "
+ MyGUI::utility::toString((fontSize-data[i].ascent)));
code->addAttribute("size", MyGUI::IntSize(data[i].width, data[i].height));
// More hacks! The french game uses several win1252 characters that are not included
// in the cp437 encoding of the font. Fall back to similar available characters.
if (mEncoding == ToUTF8::CP437)
{
std::multimap<int, int> additional; // <cp437, unicode>
additional.insert(std::make_pair(39, 0x2019)); // apostrophe
//.........这里部分代码省略.........