34 lines
869 B
C++
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
|