bool ewol::widget::Container::loadXML(exml::Element* _node) { if (nullptr == _node) { return false; } // parse generic properties : ewol::Widget::loadXML(_node); // remove previous element : subWidgetRemove(); // parse all the elements : for(size_t iii=0; iii< _node->size(); iii++) { exml::Element* pNode = _node->getElement(iii); if (pNode == nullptr) { // trash here all that is not element continue; } std::string widgetName = pNode->getValue(); if (getWidgetManager().exist(widgetName) == false) { EWOL_ERROR("(l "<<pNode->getPos()<<") Unknown basic node=\"" << widgetName << "\" not in : [" << getWidgetManager().list() << "]" ); continue; } if (nullptr != getSubWidget()) { EWOL_ERROR("(l "<<pNode->getPos()<<") " << __class__ << " Can only have one subWidget ??? node=\"" << widgetName << "\"" ); continue; } EWOL_DEBUG("try to create subwidget : '" << widgetName << "'"); std::shared_ptr<ewol::Widget> tmpWidget = getWidgetManager().create(widgetName); if (tmpWidget == nullptr) { EWOL_ERROR ("(l "<<pNode->getPos()<<") Can not create the widget : \"" << widgetName << "\""); continue; } // add widget : setSubWidget(tmpWidget); if (false == tmpWidget->loadXML(pNode)) { EWOL_ERROR ("(l "<<pNode->getPos()<<") can not load widget properties : \"" << widgetName << "\""); return false; } } return true; }
/** * @brief get the current displayed composition * @return The toggle widget */ ewol::WidgetShared getSubWidgetToggle() const { return getSubWidget(1); };
/** * @brief get the current displayed composition * @return The base widget */ ewol::WidgetShared getSubWidget() const { return getSubWidget(0); };