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

Method loadWidgets

Tools/LayoutEditor/WidgetTypes.cpp:84–163  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82 }
83
84 void WidgetTypes::loadWidgets(MyGUI::xml::ElementPtr _node, std::string_view _file, MyGUI::Version _version)
85 {
86 MyGUI::xml::ElementEnumerator widgets = _node->getElementEnumerator();
87 while (widgets.next("Widget"))
88 {
89 WidgetStyle* widget_type = getWidgetType(widgets->findAttribute("name"));
90
91 widget_type->internalType = widgets->findAttribute("internal") == "true";
92
93 // берем детей и крутимся
94 MyGUI::xml::ElementEnumerator field = widgets->getElementEnumerator();
95 while (field.next())
96 {
97 std::string key;
98 std::string value;
99 std::string group;
100
101 if (field->getName() == "Property")
102 {
103 if (!field->findAttribute("key", key))
104 continue;
105 if (!field->findAttribute("value", value))
106 continue;
107 field->findAttribute("group", group);
108 if (key == "Skin")
109 {
110 std::string_view button_name = field->findAttribute("name");
111 if (button_name.empty())
112 button_name = value;
113
114 if (group.empty())
115 group = DEFAULT_GROUP_NAME;
116 mSkinGroups[group].emplace_back(value, widget_type->name, button_name);
117 widget_type->skin.push_back(value);
118 }
119 else if (key == "DefaultSkin")
120 widget_type->default_skin = value;
121 else if (key == "Parent")
122 widget_type->parent = MyGUI::utility::parseBool(value);
123 else if (key == "Child")
124 widget_type->child = MyGUI::utility::parseBool(value);
125 else if (key == "Resizeable")
126 widget_type->resizeable = MyGUI::utility::parseBool(value);
127 else if (key == "ItemManager")
128 widget_type->many_items = MyGUI::utility::parseBool(value);
129 else if (key == "Base")
130 widget_type->base = value;
131 }
132 else if (field->getName() == "Parameter")
133 {
134 if (!field->findAttribute("key", key))
135 continue;
136 if (!field->findAttribute("value", value))
137 continue;
138 widget_type->parameter.emplace_back(key, value);
139 }
140 else if (field->getName() == "TemplateData")
141 {

Callers

nothing calls this directly

Calls 6

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

Tested by

no test coverage detected