Files
XCEngine/editor/src/Core/EditorWindowTitle.h

34 lines
869 B
C++

#pragma once
#include "Core/IEditorContext.h"
#include "Core/ISceneManager.h"
#include <filesystem>
#include <string>
namespace XCEngine {
namespace Editor {
inline std::string BuildEditorWindowTitle(IEditorContext& context) {
auto& sceneManager = context.GetSceneManager();
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 sceneName + " - XCEngine Editor";
}
} // namespace Editor
} // namespace XCEngine