MyGUI::Widget* WidgetSelectorManager::findWidgetSelected(WidgetContainer* _container) { MyGUI::Widget* result = nullptr; for (MyGUI::VectorStringPairs::iterator item = _container->mUserString.begin(); item != _container->mUserString.end(); ++ item) { if ((*item).first == mStoreWidgetTag) { result = _container->widget; _container->mUserString.erase(item); break; } } if (result == nullptr) { for (std::vector<WidgetContainer*>::iterator item = _container->childContainers.begin(); item != _container->childContainers.end(); ++item) { MyGUI::Widget* widget = findWidgetSelected(*item); if (widget != nullptr) { result = widget; break; } } } return result; }
MyGUI::Widget* WidgetSelectorManager::findWidgetSelected(WidgetContainer* _container) { MyGUI::Widget* result = nullptr; bool existStoreTag = _container->existUserData(mStoreWidgetTag); if (existStoreTag) { result = _container->getWidget(); _container->clearUserData(mStoreWidgetTag); } if (result == nullptr) { for (std::vector<WidgetContainer*>::iterator item = _container->childContainers.begin(); item != _container->childContainers.end(); ++item) { MyGUI::Widget* widget = findWidgetSelected(*item); if (widget != nullptr) { result = widget; break; } } } return result; }
MyGUI::Widget* WidgetSelectorManager::findWidgetSelected() { MyGUI::Widget* result = nullptr; EnumeratorWidgetContainer container = EditorWidgets::getInstance().getWidgets(); while (container.next()) { MyGUI::Widget* widget = findWidgetSelected(container.current()); if (widget != nullptr) { result = widget; break; } } return result; }
void WidgetSelectorManager::restoreSelectedWidget() { MyGUI::Widget* widget = findWidgetSelected(); setSelectedWidget(widget); }