#pragma once #include "ProjectPanel.h" #include "Rendering/Assets/BuiltInIcons.h" #include "Composition/EditorPanelIds.h" #include #include #include #include #include namespace XCEngine::UI::Editor::App::ProjectPanelInternal { using ::XCEngine::UI::Editor::UIEditorTextMeasureRequest; using ::XCEngine::UI::Editor::UIEditorTextMeasurer; using ::XCEngine::UI::UIColor; using ::XCEngine::UI::UIDrawList; using ::XCEngine::UI::UIInputEvent; using ::XCEngine::UI::UIPoint; using ::XCEngine::UI::UIRect; inline constexpr std::size_t kInvalidLayoutIndex = static_cast(-1); inline constexpr float kBrowserHeaderHeight = 24.0f; inline constexpr float kNavigationMinWidth = 180.0f; inline constexpr float kBrowserMinWidth = 260.0f; inline constexpr float kHeaderHorizontalPadding = 10.0f; inline constexpr float kHeaderBottomBorderThickness = 1.0f; inline constexpr float kBreadcrumbItemPaddingX = 4.0f; inline constexpr float kBreadcrumbItemPaddingY = 1.0f; inline constexpr float kBreadcrumbSpacing = 3.0f; inline constexpr float kTreeTopPadding = 0.0f; inline constexpr float kGridInsetX = 16.0f; inline constexpr float kGridInsetY = 12.0f; inline constexpr float kGridTileWidth = 92.0f; inline constexpr float kGridTileHeight = 92.0f; inline constexpr float kGridTileGapX = 12.0f; inline constexpr float kGridTileGapY = 12.0f; inline constexpr float kGridPreviewWidth = 68.0f; inline constexpr float kGridPreviewHeight = 54.0f; inline constexpr float kHeaderFontSize = 12.0f; inline constexpr float kTileLabelFontSize = 11.0f; inline constexpr UIColor kSurfaceColor(0.10f, 0.10f, 0.10f, 1.0f); inline constexpr UIColor kPaneColor(0.10f, 0.10f, 0.10f, 1.0f); inline constexpr UIColor kHeaderColor(0.11f, 0.11f, 0.11f, 1.0f); inline constexpr UIColor kTextPrimary(0.880f, 0.880f, 0.880f, 1.0f); inline constexpr UIColor kTextStrong(0.930f, 0.930f, 0.930f, 1.0f); inline constexpr UIColor kTextMuted(0.640f, 0.640f, 0.640f, 1.0f); inline constexpr UIColor kTileHoverColor(0.14f, 0.14f, 0.14f, 1.0f); inline constexpr UIColor kTileSelectedColor(0.18f, 0.18f, 0.18f, 1.0f); inline constexpr UIColor kTilePreviewFillColor(0.15f, 0.15f, 0.15f, 1.0f); inline constexpr UIColor kTilePreviewShadeColor(0.12f, 0.12f, 0.12f, 1.0f); inline constexpr UIColor kTilePreviewOutlineColor(0.920f, 0.920f, 0.920f, 0.20f); inline constexpr UIColor kDropPreviewColor(0.92f, 0.92f, 0.92f, 0.42f); bool ContainsPoint(const UIRect& rect, const UIPoint& point); float ClampNonNegative(float value); float ResolveTextTop(float rectY, float rectHeight, float fontSize); float MeasureTextWidth( const UIEditorTextMeasurer* textMeasurer, std::string_view text, float fontSize); std::vector FilterProjectPanelInputEvents( const UIRect& bounds, const std::vector& inputEvents, bool allowInteraction, bool panelActive, bool captureActive); std::vector FilterTreeInputEvents( const std::vector& inputEvents, bool suppressPointerInput); ::XCEngine::UI::UITextureHandle ResolveFolderIcon(const BuiltInIcons* icons); float ClampNavigationWidth(float value, float totalWidth); void AppendTilePreview( UIDrawList& drawList, const UIRect& previewRect, bool directory); } // namespace XCEngine::UI::Editor::App::ProjectPanelInternal