2026-04-08 02:52:28 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <XCEngine/UI/DrawData.h>
|
|
|
|
|
|
|
|
|
|
namespace XCEngine::UI::Editor::Widgets {
|
|
|
|
|
|
2026-04-10 00:41:28 +08:00
|
|
|
struct UIEditorInspectorFieldStyleTokens {
|
|
|
|
|
::XCEngine::UI::UIColor rowHoverColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.20f, 0.20f, 0.20f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor rowActiveColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.24f, 0.24f, 0.24f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor labelColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.80f, 0.80f, 0.80f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor valueColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.92f, 0.92f, 0.92f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor readOnlyValueColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.60f, 0.60f, 0.60f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor controlColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.18f, 0.18f, 0.18f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor controlHoverColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.21f, 0.21f, 0.21f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor controlEditingColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.24f, 0.24f, 0.24f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor controlReadOnlyColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.15f, 0.15f, 0.15f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor controlBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.30f, 0.30f, 0.30f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor controlFocusedBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.64f, 0.64f, 0.64f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor prefixColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.20f, 0.20f, 0.20f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor prefixBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.31f, 0.31f, 0.31f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor axisXColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.78f, 0.42f, 0.42f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor axisYColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.56f, 0.72f, 0.46f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor axisZColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.45f, 0.62f, 0.82f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor axisWColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.76f, 0.66f, 0.42f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor arrowColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.88f, 0.88f, 0.88f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor swatchBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.30f, 0.30f, 0.30f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor swatchHoverBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.64f, 0.64f, 0.64f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor swatchReadOnlyOverlayColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.08f, 0.08f, 0.08f, 0.18f);
|
|
|
|
|
::XCEngine::UI::UIColor popupColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.20f, 0.20f, 0.20f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor popupBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.12f, 0.12f, 0.12f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor popupHeaderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.17f, 0.17f, 0.17f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor popupTitleColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.93f, 0.93f, 0.93f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor popupTextColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.86f, 0.86f, 0.86f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor popupTextMutedColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.72f, 0.72f, 0.72f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor previewBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.11f, 0.11f, 0.11f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor previewBaseColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.19f, 0.19f, 0.19f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor checkerLightColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.84f, 0.84f, 0.84f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor checkerDarkColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.55f, 0.55f, 0.55f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor sliderBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.11f, 0.11f, 0.11f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor numericBoxColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.17f, 0.17f, 0.17f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor numericBoxBorderColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.11f, 0.11f, 0.11f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor numericBoxTextColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.93f, 0.93f, 0.93f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor closeButtonColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.0f, 0.0f, 0.0f, 0.0f);
|
|
|
|
|
::XCEngine::UI::UIColor closeButtonHoverColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.25f, 0.25f, 0.25f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor closeGlyphColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.85f, 0.85f, 0.85f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor handleFillColor =
|
|
|
|
|
::XCEngine::UI::UIColor(1.0f, 1.0f, 1.0f, 1.0f);
|
|
|
|
|
::XCEngine::UI::UIColor handleStrokeColor =
|
|
|
|
|
::XCEngine::UI::UIColor(0.10f, 0.10f, 0.10f, 0.5f);
|
|
|
|
|
float controlTrailingInset = 9.0f;
|
|
|
|
|
float controlMinWidth = 88.0f;
|
|
|
|
|
float dropdownArrowWidth = 14.0f;
|
|
|
|
|
float vectorComponentMinWidth = 74.0f;
|
|
|
|
|
float vectorPrefixWidth = 18.0f;
|
|
|
|
|
float vectorPrefixGap = 5.0f;
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-08 02:52:28 +08:00
|
|
|
struct UIEditorFieldRowLayoutMetrics {
|
|
|
|
|
float rowHeight = 22.0f;
|
|
|
|
|
float horizontalPadding = 12.0f;
|
|
|
|
|
float labelControlGap = 20.0f;
|
|
|
|
|
float controlColumnStart = 236.0f;
|
|
|
|
|
float controlTrailingInset = 8.0f;
|
|
|
|
|
float controlInsetY = 1.0f;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct UIEditorFieldRowLayout {
|
|
|
|
|
::XCEngine::UI::UIRect bounds = {};
|
|
|
|
|
::XCEngine::UI::UIRect labelRect = {};
|
|
|
|
|
::XCEngine::UI::UIRect controlRect = {};
|
|
|
|
|
};
|
|
|
|
|
|
2026-04-10 00:41:28 +08:00
|
|
|
const UIEditorInspectorFieldStyleTokens& GetUIEditorInspectorFieldStyleTokens();
|
|
|
|
|
|
|
|
|
|
bool AreUIEditorFieldMetricsEqual(float lhs, float rhs);
|
|
|
|
|
|
|
|
|
|
bool AreUIEditorFieldColorsEqual(
|
|
|
|
|
const ::XCEngine::UI::UIColor& lhs,
|
|
|
|
|
const ::XCEngine::UI::UIColor& rhs);
|
|
|
|
|
|
2026-04-08 02:52:28 +08:00
|
|
|
UIEditorFieldRowLayout BuildUIEditorFieldRowLayout(
|
|
|
|
|
const ::XCEngine::UI::UIRect& bounds,
|
|
|
|
|
float minimumControlWidth,
|
|
|
|
|
const UIEditorFieldRowLayoutMetrics& metrics = {});
|
|
|
|
|
|
|
|
|
|
} // namespace XCEngine::UI::Editor::Widgets
|