void WidgetSaver::save(Container::Ptr widget, std::stringstream& stream) { auto node = std::make_shared<DataIO::Node>(); for (auto& child : widget->getWidgets()) { auto& saveFunction = WidgetSaver::getSaveFunction(toLower(child->getWidgetType())); if (saveFunction) node->children.emplace_back(saveFunction(WidgetConverter{child})); else throw Exception{"No save function exists for widget type '" + child->getWidgetType() + "'."}; } DataIO::emit(node, stream); }
TGUI_API std::shared_ptr<DataIO::Node> saveContainer(Container::Ptr container) { auto node = saveWidget(container); for (auto& child : container->getWidgets()) { auto& saveFunction = WidgetSaver::getSaveFunction(toLower(child->getWidgetType())); if (saveFunction) node->children.emplace_back(saveFunction(WidgetConverter{child})); else throw Exception{"No save function exists for widget type '" + child->getWidgetType() + "'."}; } return node; }