MCPcopy Create free account
hub / github.com/MyGUI/mygui / _load

Method _load

MyGUIEngine/src/MyGUI_LayerManager.cpp:71–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69 }
70
71 void LayerManager::_load(xml::ElementPtr _node, std::string_view _file, Version _version)
72 {
73 VectorLayer layers;
74 // берем детей и крутимся, основной цикл
75 xml::ElementEnumerator layer = _node->getElementEnumerator();
76 while (layer.next(mCategoryName))
77 {
78 std::string name;
79
80 if (!layer->findAttribute("name", name))
81 {
82 MYGUI_LOG(Warning, "Attribute 'name' not found (file : " << _file << ")");
83 continue;
84 }
85
86 for (const auto& item : layers)
87 {
88 MYGUI_ASSERT(item->getName() != name, "Layer '" << name << "' already exist (file : " << _file << ")");
89 }
90
91 std::string_view type = layer->findAttribute("type");
92 if (type.empty() && _version <= Version(1, 0))
93 {
94 bool overlapped = utility::parseBool(layer->findAttribute("overlapped"));
95 type = overlapped ? "OverlappedLayer" : "SharedLayer";
96 }
97
98 ILayer* item = _createLayerObject(type);
99 item->deserialization(layer.current(), _version);
100
101 layers.push_back(item);
102 }
103
104 // теперь мержим новые и старые слои
105 merge(layers);
106 }
107
108 ILayer* LayerManager::_createLayerObject(std::string_view _type)
109 {

Callers

nothing calls this directly

Calls 8

parseBoolFunction · 0.85
getElementEnumeratorMethod · 0.80
findAttributeMethod · 0.80
nextMethod · 0.45
emptyMethod · 0.45
deserializationMethod · 0.45
currentMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected