EditorWidgetBase* EditorWidgetManager::open(const String& name) { auto iterFind = mActiveWidgets.find(name); if(iterFind != mActiveWidgets.end()) return iterFind->second; EditorWindow* window = EditorWindow::create(); EditorWidgetBase* newWidget = create(name, window->widgets()); if(newWidget == nullptr) { window->close(); return nullptr; } Vector2I widgetSize(newWidget->getDefaultWidth(), newWidget->getDefaultHeight()); Vector2I windowSize = EditorWidgetContainer::widgetToWindowSize(widgetSize); window->setSize((UINT32)windowSize.x, (UINT32)windowSize.y); return newWidget; }