#include "Windowing/System/EditorWindowPresentationPolicy.h" #include namespace XCEngine::UI::Editor::App { namespace { std::wstring ResolvePrimaryTitle(std::wstring_view primaryWindowTitle) { return primaryWindowTitle.empty() ? std::wstring(L"XCEngine Editor") : std::wstring(primaryWindowTitle); } } // namespace UIEditorWorkspaceController BuildWorkspaceControllerForWindowState( const UIEditorPanelRegistry& panelRegistry, const UIEditorWindowWorkspaceState& windowState) { return UIEditorWorkspaceController( panelRegistry, windowState.workspace, windowState.session); } std::wstring ResolveEditorWindowPresentationTitle( std::wstring_view primaryWindowTitle, const UIEditorPanelRegistry& panelRegistry, const UIEditorWindowWorkspaceState& windowState, bool primary) { if (primary) { return ResolvePrimaryTitle(primaryWindowTitle); } const UIEditorWorkspaceController workspaceController = BuildWorkspaceControllerForWindowState(panelRegistry, windowState); const std::string detachedTitle = ResolveUIEditorDetachedWorkspaceTitle(workspaceController); if (detachedTitle.empty()) { return std::wstring(L"XCEngine Editor"); } const std::string decoratedTitle = detachedTitle + " - XCEngine Editor"; return std::wstring(decoratedTitle.begin(), decoratedTitle.end()); } } // namespace XCEngine::UI::Editor::App