Files
XCEngine/new_editor/app/Features/Inspector/InspectorPresentationModel.h

37 lines
1011 B
C++

#pragma once
#include "Features/Inspector/InspectorSubject.h"
#include <XCEditor/Fields/UIEditorPropertyGrid.h>
#include <string>
#include <vector>
namespace XCEngine::UI::Editor::App {
class EditorSceneRuntime;
class InspectorComponentEditorRegistry;
struct InspectorPresentationComponentBinding {
std::string componentId = {};
std::string typeName = {};
std::string displayName = {};
bool removable = false;
std::vector<std::string> fieldIds = {};
};
struct InspectorPresentationModel {
bool hasSelection = false;
std::string title = {};
std::string subtitle = {};
std::vector<Widgets::UIEditorPropertyGridSection> sections = {};
std::vector<InspectorPresentationComponentBinding> componentBindings = {};
};
InspectorPresentationModel BuildInspectorPresentationModel(
const InspectorSubject& subject,
const EditorSceneRuntime& sceneRuntime,
const InspectorComponentEditorRegistry& componentEditorRegistry);
} // namespace XCEngine::UI::Editor::App