33 _node->findAttribute(
"name", name);
34 _node->findAttribute(
"texture", texture);
35 if (
_node->findAttribute(
"size",
tmp))
49 setInfo(size, texture);
52 if (
_node->findAttribute(
"mask",
tmp))
53 addProperty(
"MaskPick",
tmp);
59 if (
basis->getName() ==
"Property")
64 if (!
basis->findAttribute(
"key", key))
66 if (!
basis->findAttribute(
"value", value))
76 addProperty(key, value);
78 else if (
basis->getName() ==
"Child")
81 basis->findAttribute(
"type"),
83 basis->findAttribute(
"skin"),
86 basis->findAttribute(
"layer"),
87 basis->findAttribute(
"name"));
96 else if (
basis->getName() ==
"BasisSkin")
121 if (
state->getName() ==
"State")
124 if ((
name_state ==
"normal_checked") || (
state->findAttribute(
"name") ==
"normal_check"))
137 if (
state->getName() ==
"State")
173 if (
object !=
nullptr)
196 void ResourceSkin::addInfo(
const SubWidgetBinding& _bind)
198 checkState(_bind.mStates);
199 mBasis.emplace_back(_bind.mType, _bind.mOffset, _bind.mAlign);
201 fillState(_bind.mStates, mBasis.size() - 1);
204 void ResourceSkin::addProperty(std::string_view _key, std::string_view _value)
206 mapSet(mProperties, _key, _value);
209 void ResourceSkin::addChild(
const ChildSkinInfo& _child)
211 mChilds.push_back(_child);
214 void ResourceSkin::clear()
216 for (
auto& state : mStates)
218 for (
auto& info : state.second)
223 void ResourceSkin::checkState(
const MapStateInfo& _states)
225 for (
const auto& state : _states)
227 checkState(state.first);
231 void ResourceSkin::checkState(std::string_view _name)
234 MapWidgetStateInfo::const_iterator iter = mStates.find(_name);
235 if (iter == mStates.end())
242 void ResourceSkin::checkBasis()
245 for (
auto& state : mStates)
247 state.second.resize(mBasis.size());
251 void ResourceSkin::fillState(
const MapStateInfo& _states,
size_t _index)
253 for (
const auto& state : _states)
255 mStates[state.first][_index] = state.second;
T::const_reference current()
static FactoryManager & getInstance()
Type * castType(bool _throw=true)
virtual void deserialization(xml::ElementPtr, Version)
static LanguageManager & getInstance()
const MapWidgetStateInfo & getStateInfo() const
const std::string & getSkinName() const
const IntSize & getSize() const
const MapString & getProperties() const
const VectorSubWidgetInfo & getBasisInfo() const
void deserialization(xml::ElementPtr _node, Version _version) override
const std::string & getTextureName() const
const VectorChildSkinInfo & getChild() const
std::map< std::string, VectorStateInfo, std::less<> > MapWidgetStateInfo
void mapSet(Map &map, std::string_view key, const Value &value)
std::map< std::string, std::string, std::less<> > MapString
std::vector< SubWidgetInfo > VectorSubWidgetInfo
std::vector< IStateInfo * > VectorStateInfo
std::map< std::string, IStateInfo *, std::less<> > MapStateInfo
std::vector< ChildSkinInfo > VectorChildSkinInfo
static Align parse(std::string_view _value)
static TCoord< int > parse(std::string_view _value)
static TSize< int > parse(std::string_view _value)