void WidgetCreatorManager::finishNewWidget(const MyGUI::IntPoint& _point) { if (mNewWidget != nullptr) { MyGUI::IntCoord coord = getCoordNewWidget(_point); if (coord.width != 0 && coord.height != 0) { mNewWidget->setCoord(coord); // создали виджет, все счастливы WidgetContainer * widgetContainer = new WidgetContainer(mWidgetType, mWidgetSkin, mNewWidget); if (mPopupMode) widgetContainer->setStyle(mNewWidget->getWidgetStyle().print()); mNewWidget = nullptr; EditorWidgets::getInstance().add(widgetContainer); UndoManager::getInstance().addValue(); // чтобы выделился созданый виджет resetAllCreatorInfo(); WidgetSelectorManager::getInstance().setSelectedWidget(widgetContainer->getWidget()); } else { // не удалось создать, т.к. размер нулевой resetWidget(); } } resetAllCreatorInfo(); eventChangeSelector(false, MyGUI::IntCoord()); }
void PanelMainProperties::notifyActionAlign(const std::string& _type, const std::string& _value, bool _final) { if (_final) { WidgetContainer* widgetContainer = EditorWidgets::getInstance().find(mCurrentWidget); widgetContainer->setAlign(_value); widgetContainer->getWidget()->setAlign(MyGUI::Align::parse(_value)); UndoManager::getInstance().addValue(PR_PROPERTIES); } }
void PanelProperties::notifyAction(const std::string& _name, const std::string& _value, bool _final) { WidgetContainer* widgetContainer = EditorWidgets::getInstance().find(mCurrentWidget); EditorWidgets::getInstance().tryToApplyProperty(widgetContainer->getWidget(), _name, _value); if (_final) { if (_value.empty()) widgetContainer->clearProperty(_name); else widgetContainer->setProperty(_name, _value); UndoManager::getInstance().addValue(PR_PROPERTIES); } }