feat(new_editor): wire project, inspector, and viewport runtime
This commit is contained in:
@@ -6,6 +6,10 @@
|
||||
#include <XCEngine/UI/Widgets/UISelectionModel.h>
|
||||
|
||||
#include <XCEditor/Fields/UIEditorColorField.h>
|
||||
#include <XCEditor/Fields/UIEditorAssetField.h>
|
||||
#include <XCEditor/Fields/UIEditorVector2Field.h>
|
||||
#include <XCEditor/Fields/UIEditorVector3Field.h>
|
||||
#include <XCEditor/Fields/UIEditorVector4Field.h>
|
||||
#include <XCEditor/Menu/UIEditorMenuPopup.h>
|
||||
|
||||
#include <array>
|
||||
@@ -24,6 +28,7 @@ enum class UIEditorPropertyGridFieldKind : std::uint8_t {
|
||||
Bool,
|
||||
Number,
|
||||
Enum,
|
||||
Asset,
|
||||
Color,
|
||||
Vector2,
|
||||
Vector3,
|
||||
@@ -60,6 +65,17 @@ struct UIEditorPropertyGridEnumFieldValue {
|
||||
std::size_t selectedIndex = 0u;
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridAssetFieldValue {
|
||||
std::string assetId = {};
|
||||
std::string displayName = {};
|
||||
std::string statusText = {};
|
||||
std::string emptyText = "None";
|
||||
::XCEngine::UI::UIColor tint = ::XCEngine::UI::UIColor(0.28f, 0.50f, 0.83f, 1.0f);
|
||||
bool showPickerButton = true;
|
||||
bool allowClear = true;
|
||||
bool showStatusBadge = true;
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridColorFieldValue {
|
||||
::XCEngine::UI::UIColor value = {};
|
||||
bool showAlpha = true;
|
||||
@@ -111,6 +127,7 @@ struct UIEditorPropertyGridField {
|
||||
bool boolValue = false;
|
||||
UIEditorPropertyGridNumberFieldValue numberValue = {};
|
||||
UIEditorPropertyGridEnumFieldValue enumValue = {};
|
||||
UIEditorPropertyGridAssetFieldValue assetValue = {};
|
||||
UIEditorPropertyGridColorFieldValue colorValue = {};
|
||||
UIEditorPropertyGridVector2FieldValue vector2Value = {};
|
||||
UIEditorPropertyGridVector3FieldValue vector3Value = {};
|
||||
@@ -129,6 +146,26 @@ struct UIEditorPropertyGridColorFieldVisualState {
|
||||
UIEditorColorFieldState state = {};
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridAssetFieldVisualState {
|
||||
std::string fieldId = {};
|
||||
UIEditorAssetFieldState state = {};
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridVector2FieldVisualState {
|
||||
std::string fieldId = {};
|
||||
UIEditorVector2FieldState state = {};
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridVector3FieldVisualState {
|
||||
std::string fieldId = {};
|
||||
UIEditorVector3FieldState state = {};
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridVector4FieldVisualState {
|
||||
std::string fieldId = {};
|
||||
UIEditorVector4FieldState state = {};
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridState {
|
||||
std::string hoveredSectionId = {};
|
||||
std::string hoveredFieldId = {};
|
||||
@@ -137,7 +174,11 @@ struct UIEditorPropertyGridState {
|
||||
std::string pressedFieldId = {};
|
||||
std::string popupFieldId = {};
|
||||
std::size_t popupHighlightedIndex = UIEditorPropertyGridInvalidIndex;
|
||||
std::vector<UIEditorPropertyGridAssetFieldVisualState> assetFieldStates = {};
|
||||
std::vector<UIEditorPropertyGridColorFieldVisualState> colorFieldStates = {};
|
||||
std::vector<UIEditorPropertyGridVector2FieldVisualState> vector2FieldStates = {};
|
||||
std::vector<UIEditorPropertyGridVector3FieldVisualState> vector3FieldStates = {};
|
||||
std::vector<UIEditorPropertyGridVector4FieldVisualState> vector4FieldStates = {};
|
||||
};
|
||||
|
||||
struct UIEditorPropertyGridMetrics {
|
||||
|
||||
Reference in New Issue
Block a user