void MainMenuControlLE::widgetsUpdate() { bool print_name = SettingsManager::getInstance().getValue<bool>("Settings/ShowName"); bool print_type = SettingsManager::getInstance().getValue<bool>("Settings/ShowType"); bool print_skin = SettingsManager::getInstance().getValue<bool>("Settings/ShowSkin"); mPopupMenuWidgets->removeAllItems(); EnumeratorWidgetContainer widget = EditorWidgets::getInstance().getWidgets(); while (widget.next()) createWidgetPopup(widget.current(), mPopupMenuWidgets, print_name, print_type, print_skin); }
void EditorState::notifyWidgetsUpdate() { if (mMetaSolutionWindow->isVisible()) mMetaSolutionWindow->updateList(); bool print_name = mSettingsWindow->getShowName(); bool print_type = mSettingsWindow->getShowType(); bool print_skin = mSettingsWindow->getShowSkin(); mPopupMenuWidgets->removeAllItems(); mPopupMenuWidgets->eventMenuCtrlAccept = MyGUI::newDelegate(this, &EditorState::notifyWidgetsSelect); for (std::vector<WidgetContainer*>::iterator iter = ew->widgets.begin(); iter != ew->widgets.end(); ++iter ) { createWidgetPopup(*iter, mPopupMenuWidgets, print_name, print_type, print_skin); } }
void MainMenuControlLE::createWidgetPopup(WidgetContainer* _container, MyGUI::MenuControl* _parentPopup, bool _print_name, bool _print_type, bool _print_skin) { bool submenu = !_container->childContainers.empty(); _parentPopup->addItem(getDescriptionString(_container->getWidget(), _print_name, _print_type, _print_skin), submenu ? MyGUI::MenuItemType::Popup : MyGUI::MenuItemType::Normal); _parentPopup->setItemDataAt(_parentPopup->getItemCount() - 1, _container->getWidget()); if (submenu) { MyGUI::MenuControl* child = _parentPopup->createItemChildAt(_parentPopup->getItemCount() - 1); child->eventMenuCtrlAccept += MyGUI::newDelegate(this, &MainMenuControlLE::notifyWidgetsSelect); child->setPopupAccept(true); for (std::vector<WidgetContainer*>::iterator iter = _container->childContainers.begin(); iter != _container->childContainers.end(); ++iter ) { createWidgetPopup(*iter, child, _print_name, _print_type, _print_skin); } } }