#pragma once #include "Core/IEditorContext.h" #include "Core/ISceneManager.h" #include #include namespace XCEngine { namespace Editor { inline std::string BuildEditorWindowTitle(IEditorContext& context) { auto& sceneManager = context.GetSceneManager(); std::string modePrefix; switch (context.GetRuntimeMode()) { case EditorRuntimeMode::Play: modePrefix = "[Play] "; break; case EditorRuntimeMode::Paused: modePrefix = "[Paused] "; break; case EditorRuntimeMode::Simulate: modePrefix = "[Simulate] "; break; case EditorRuntimeMode::Edit: default: break; } std::string sceneName = sceneManager.HasActiveScene() ? sceneManager.GetCurrentSceneName() : "No Scene"; if (sceneName.empty()) { sceneName = "Untitled Scene"; } if (sceneManager.IsSceneDirty()) { sceneName += " *"; } if (sceneManager.GetCurrentScenePath().empty()) { sceneName += " (Unsaved)"; } else { sceneName += " - "; sceneName += std::filesystem::path(sceneManager.GetCurrentScenePath()).filename().string(); } return modePrefix + sceneName + " - XCEngine Editor"; } } // namespace Editor } // namespace XCEngine