| 213 | } |
| 214 | |
| 215 | void updateWidget(WidgetExtension* ext, const sol::table& layout, uint64_t depth) |
| 216 | { |
| 217 | if (depth >= maxDepth) |
| 218 | throw std::runtime_error("Maximum layout depth exceeded, probably caused by a circular reference"); |
| 219 | ext->reset(); |
| 220 | ext->setLayout(layout); |
| 221 | ext->setExternal(layout.get<sol::object>(LayoutKeys::external)); |
| 222 | setTemplate(ext, layout.get<sol::object>(LayoutKeys::templateLayout), depth); |
| 223 | ext->setProperties(layout.get<sol::object>(LayoutKeys::props)); |
| 224 | setEventCallbacks(ext, layout.get<sol::object>(LayoutKeys::events)); |
| 225 | ext->setChildren(updateContent(ext->children(), layout.get<sol::object>(LayoutKeys::content), depth)); |
| 226 | ext->updateCoord(); |
| 227 | } |
| 228 | |
| 229 | std::string setLayer(WidgetExtension* ext, const sol::table& layout) |
| 230 | { |
no test coverage detected