本文整理汇总了C++中xml::ElementPtr::findAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ ElementPtr::findAttribute方法的具体用法?C++ ElementPtr::findAttribute怎么用?C++ ElementPtr::findAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml::ElementPtr
的用法示例。
在下文中一共展示了ElementPtr::findAttribute方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: deserialization
void OverlappedLayer::deserialization(xml::ElementPtr _node, Version _version)
{
mName = _node->findAttribute("name");
if (_version >= Version(1, 2))
{
MyGUI::xml::ElementEnumerator propert = _node->getElementEnumerator();
while (propert.next("Property"))
{
const std::string& key = propert->findAttribute("key");
const std::string& value = propert->findAttribute("value");
if (key == "Pick") mIsPick = utility::parseValue<bool>(value);
}
}
else
{
mIsPick = utility::parseBool(_version < Version(1, 0) ? _node->findAttribute("peek") : _node->findAttribute("pick"));
}
}
示例2: deserialization
void ResourceSkin::deserialization(xml::ElementPtr _node, Version _version)
{
Base::deserialization(_node, _version);
std::string stateCategory = SubWidgetManager::getInstance().getStateCategoryName();
// парсим атрибуты скина
std::string name, texture, tmp;
IntSize size;
_node->findAttribute("name", name);
_node->findAttribute("texture", texture);
if (_node->findAttribute("size", tmp)) size = IntSize::parse(tmp);
LanguageManager& localizator = LanguageManager::getInstance();
// вспомогательный класс для биндинга сабскинов
SubWidgetBinding bind;
// поддержка замены тегов в скинах
if (_version >= Version(1, 1))
{
texture = localizator.replaceTags(texture);
}
setInfo(size, texture);
// проверяем маску
if (_node->findAttribute("mask", tmp))
addProperty("MaskPick", tmp);
// берем детей и крутимся, цикл с саб скинами
xml::ElementEnumerator basis = _node->getElementEnumerator();
while (basis.next())
{
if (basis->getName() == "Property")
{
// загружаем свойства
std::string key, value;
if (!basis->findAttribute("key", key))
continue;
if (!basis->findAttribute("value", value))
continue;
// поддержка замены тегов в скинах
if (_version >= Version(1, 1))
{
value = localizator.replaceTags(value);
}
// добавляем свойство
addProperty(key, value);
}
else if (basis->getName() == "Child")
{
ChildSkinInfo child(
basis->findAttribute("type"),
WidgetStyle::parse(basis->findAttribute("style")),
basis->findAttribute("skin"),
IntCoord::parse(basis->findAttribute("offset")),
Align::parse(basis->findAttribute("align")),
basis->findAttribute("layer"),
basis->findAttribute("name")
);
xml::ElementEnumerator child_params = basis->getElementEnumerator();
while (child_params.next("Property"))
child.addParam(child_params->findAttribute("key"), child_params->findAttribute("value"));
addChild(child);
//continue;
}
else if (basis->getName() == "BasisSkin")
{
// парсим атрибуты
std::string basisSkinType, tmp_str;
IntCoord offset;
Align align = Align::Default;
basis->findAttribute("type", basisSkinType);
if (basis->findAttribute("offset", tmp_str))
offset = IntCoord::parse(tmp_str);
if (basis->findAttribute("align", tmp_str))
align = Align::parse(tmp_str);
bind.create(offset, align, basisSkinType);
// берем детей и крутимся, цикл со стейтами
xml::ElementEnumerator state = basis->getElementEnumerator();
// проверяем на новый формат стейтов
bool new_format = false;
// если версия меньше 1.0 то переименовываем стейты
if (_version < Version(1, 0))
{
while (state.next())
{
if (state->getName() == "State")
{
const std::string& name_state = state->findAttribute("name");
if ((name_state == "normal_checked") || (state->findAttribute("name") == "normal_check"))
{
//.........这里部分代码省略.........
示例3: deserialization
void ResourceTrueTypeFont::deserialization(xml::ElementPtr _node, Version _version)
{
Base::deserialization(_node, _version);
xml::ElementEnumerator node = _node->getElementEnumerator();
while (node.next())
{
if (node->getName() == "Property")
{
const std::string& key = node->findAttribute("key");
const std::string& value = node->findAttribute("value");
if (key == "Source")
setSource(value);
else if (key == "Size")
setSize(utility::parseFloat(value));
else if (key == "Resolution")
setResolution(utility::parseUInt(value));
else if (key == "Antialias")
setAntialias(utility::parseBool(value));
else if (key == "TabWidth")
setTabWidth(utility::parseFloat(value));
else if (key == "OffsetHeight")
setOffsetHeight(utility::parseInt(value));
else if (key == "SubstituteCode")
setSubstituteCode(utility::parseInt(value));
else if (key == "Distance")
setDistance(utility::parseInt(value));
else if (key == "Hinting")
setHinting(value);
else if (key == "SpaceWidth")
{
mSpaceWidth = utility::parseFloat(value);
MYGUI_LOG(Warning, _node->findAttribute("type") << ": Property '" << key << "' in font '" << _node->findAttribute("name") << "' is deprecated; remove it to use automatic calculation.");
}
else if (key == "CursorWidth")
{
MYGUI_LOG(Warning, _node->findAttribute("type") << ": Property '" << key << "' in font '" << _node->findAttribute("name") << "' is deprecated; value ignored.");
}
}
else if (node->getName() == "Codes")
{
// Range of inclusions.
xml::ElementEnumerator range = node->getElementEnumerator();
while (range.next("Code"))
{
std::string range_value;
if (range->findAttribute("range", range_value))
{
std::vector<std::string> parse_range = utility::split(range_value);
if (!parse_range.empty())
{
Char first = utility::parseUInt(parse_range[0]);
Char last = parse_range.size() > 1 ? utility::parseUInt(parse_range[1]) : first;
addCodePointRange(first, last);
}
}
}
// If no code points have been included, include the Unicode Basic Multilingual Plane by default before processing
// any exclusions.
if (mCharMap.empty())
addCodePointRange(0, 0xFFFF);
// Range of exclusions.
range = node->getElementEnumerator();
while (range.next("Code"))
{
std::string range_value;
if (range->findAttribute("hide", range_value))
{
std::vector<std::string> parse_range = utility::split(range_value);
if (!parse_range.empty())
{
Char first = utility::parseUInt(parse_range[0]);
Char last = parse_range.size() > 1 ? utility::parseUInt(parse_range[1]) : first;
removeCodePointRange(first, last);
}
}
}
}
}
initialise();
}