#pragma once #include namespace XCEngine { namespace Editor { namespace UI { inline float PopupWindowBorderSize(); inline ImVec2 DockHostFramePadding() { return ImVec2(4.0f, 2.0f); } inline ImVec2 DockHostItemInnerSpacing() { return ImVec2(0.0f, 4.0f); } inline float DockHostWindowBorderSize() { return 0.0f; } inline float DockHostTabBarBorderSize() { return 0.0f; } inline float DockHostTabBarOverlineSize() { return 0.0f; } inline ImVec4 DockTabColor() { return ImVec4(0.17f, 0.17f, 0.17f, 1.00f); } inline ImVec4 DockTabHoveredColor() { return ImVec4(0.21f, 0.21f, 0.21f, 1.00f); } inline ImVec4 DockTabSelectedColor() { return ImVec4(0.24f, 0.24f, 0.24f, 1.00f); } inline ImVec4 DockTabSelectedOverlineColor() { return ImVec4(0.62f, 0.62f, 0.62f, 0.70f); } inline ImVec4 DockTabDimmedColor() { return ImVec4(0.16f, 0.16f, 0.16f, 1.00f); } inline ImVec4 DockTabDimmedSelectedColor() { return ImVec4(0.20f, 0.20f, 0.20f, 1.00f); } inline ImVec4 DockTabDimmedSelectedOverlineColor() { return ImVec4(0.44f, 0.44f, 0.44f, 0.55f); } inline ImVec2 PanelWindowPadding() { return ImVec2(0.0f, 0.0f); } inline ImVec4 HierarchyInspectorPanelBackgroundColor() { return ImVec4(0.235f, 0.235f, 0.235f, 1.0f); } inline ImVec2 ToolbarPadding() { return ImVec2(8.0f, 6.0f); } inline ImVec2 ToolbarItemSpacing() { return ImVec2(6.0f, 6.0f); } inline float StandardPanelToolbarHeight() { return 34.0f; } inline float ProjectPanelToolbarHeight() { return 34.0f; } inline float ToolbarSearchTrailingSpacing() { return 4.0f; } inline float ToolbarRowGap() { return 2.0f; } inline ImVec2 AssetGridSpacing() { return ImVec2(8.0f, 10.0f); } inline ImVec2 DefaultPanelContentPadding() { return ImVec2(8.0f, 6.0f); } inline ImVec2 HierarchyPanelContentPadding() { return ImVec2(10.0f, 6.0f); } inline float InspectorSectionContentIndent() { return 12.0f; } inline float InspectorPropertyLabelInset() { return 12.0f; } inline float InspectorPropertyControlColumnStart() { return 236.0f; } inline float InspectorPropertyLabelControlGap() { return 20.0f; } inline ImVec2 ControlFramePadding() { return ImVec2(3.0f, 0.0f); } inline ImVec2 ScalarControlFramePadding() { return ImVec2(3.0f, 2.0f); } inline float CompactIndicatorSize() { return 18.0f; } inline float ControlRowHeightOffset() { return 1.0f; } inline ImVec2 InspectorComponentControlSpacing() { return ImVec2(6.0f, 3.0f); } inline float InspectorPropertyControlTrailingInset() { return 8.0f; } inline float CompoundControlSpacing() { return 4.0f; } inline float SliderValueFieldWidth() { return 64.0f; } inline float ComboPreviewHeightOffset() { return -2.0f; } inline float LinearSliderTrackThickness() { return 3.0f; } inline float LinearSliderGrabRadius() { return 6.0f; } inline float LinearSliderHorizontalPadding() { return 5.0f; } inline ImVec4 LinearSliderTrackColor() { return ImVec4(0.30f, 0.30f, 0.30f, 1.0f); } inline ImVec4 LinearSliderFillColor() { return ImVec4(0.66f, 0.66f, 0.66f, 1.0f); } inline ImVec4 LinearSliderGrabColor() { return ImVec4(0.78f, 0.78f, 0.78f, 1.0f); } inline ImVec4 LinearSliderGrabHoveredColor() { return ImVec4(0.88f, 0.88f, 0.88f, 1.0f); } inline ImVec4 LinearSliderGrabActiveColor() { return ImVec4(0.95f, 0.95f, 0.95f, 1.0f); } inline ImVec2 InspectorPanelContentPadding() { return ImVec2(10.0f, 0.0f); } inline ImVec2 AssetPanelContentPadding() { return ImVec2(10.0f, 10.0f); } inline float ProjectBrowserHeaderHeight() { return 28.0f; } inline float ProjectNavigationDefaultWidth() { return 248.0f; } inline float ProjectNavigationMinWidth() { return 180.0f; } inline float ProjectBrowserMinWidth() { return 260.0f; } inline float PanelSplitterHitThickness() { return 4.0f; } inline float PanelSplitterVisibleThickness() { return 2.0f; } inline ImVec4 PanelSplitterIdleColor() { return ImVec4(0.14f, 0.14f, 0.14f, 1.0f); } inline ImVec4 PanelSplitterHoveredColor() { return PanelSplitterIdleColor(); } inline ImVec4 PanelSplitterActiveColor() { return PanelSplitterIdleColor(); } inline ImVec2 ProjectNavigationPanePadding() { return ImVec2(10.0f, 6.0f); } inline ImVec2 ProjectBrowserPanePadding() { return ImVec2(16.0f, 12.0f); } inline ImVec2 NavigationTreeNodeFramePadding() { return ImVec2(4.0f, 1.0f); } inline float CompactNavigationTreeItemSpacingY() { return 0.0f; } inline float CompactNavigationTreeIndentSpacing() { return 14.0f; } inline float HierarchyTreeIndentSpacing() { return 18.0f; } inline float NavigationTreeIconSize() { return 18.0f; } inline float NavigationTreePrefixWidth() { return 18.0f; } inline float NavigationTreePrefixStartOffset() { return -5.0f; } inline float NavigationTreePrefixLabelGap() { return 2.0f; } inline float DisclosureArrowScale() { return 0.20f; } inline ImVec4 DisclosureArrowColor() { return ImVec4(0.42f, 0.42f, 0.42f, 1.0f); } inline ImVec4 NavigationTreePrefixColor(bool selected = false, bool hovered = false) { if (selected) { return ImVec4(0.86f, 0.86f, 0.86f, 1.0f); } if (hovered) { return ImVec4(0.76f, 0.76f, 0.76f, 1.0f); } return ImVec4(0.62f, 0.62f, 0.62f, 1.0f); } struct TreeViewStyle { ImVec2 framePadding = NavigationTreeNodeFramePadding(); float itemSpacingY = -1.0f; float indentSpacing = -1.0f; float prefixStartOffset = NavigationTreePrefixStartOffset(); float prefixLabelGap = NavigationTreePrefixLabelGap(); }; inline TreeViewStyle NavigationTreeStyle() { TreeViewStyle style; style.itemSpacingY = CompactNavigationTreeItemSpacingY(); style.indentSpacing = CompactNavigationTreeIndentSpacing(); style.framePadding = NavigationTreeNodeFramePadding(); style.prefixStartOffset = NavigationTreePrefixStartOffset(); style.prefixLabelGap = NavigationTreePrefixLabelGap(); return style; } inline TreeViewStyle HierarchyTreeStyle() { TreeViewStyle style = NavigationTreeStyle(); style.indentSpacing = HierarchyTreeIndentSpacing(); return style; } inline TreeViewStyle ProjectFolderTreeStyle() { return NavigationTreeStyle(); } inline ImVec4 ProjectPanelBackgroundColor() { return DockTabSelectedColor(); } inline ImVec4 ProjectPanelToolbarBackgroundColor() { return ProjectPanelBackgroundColor(); } inline ImVec4 ProjectNavigationPaneBackgroundColor() { return ProjectPanelBackgroundColor(); } inline ImVec4 ProjectBrowserSurfaceColor() { return ImVec4(0.20f, 0.20f, 0.20f, 1.0f); } inline ImVec4 ProjectBrowserHeaderBackgroundColor() { return ProjectPanelBackgroundColor(); } inline ImVec4 ProjectBrowserPaneBackgroundColor() { return ProjectBrowserSurfaceColor(); } inline ImVec4 ToolbarBackgroundColor() { return ImVec4(0.19f, 0.19f, 0.19f, 1.0f); } inline ImVec2 SearchFieldFramePadding() { return ImVec2(22.0f, 1.0f); } inline float SearchFieldFrameRounding() { return 2.0f; } inline float SearchFieldVerticalOffset() { return -1.0f; } inline ImVec2 InlineRenameFieldFramePadding() { return ImVec2(4.0f, 0.0f); } inline float InlineRenameFieldRounding() { return 2.0f; } inline ImVec4 InlineRenameFieldBackgroundColor() { return ImVec4(0.25f, 0.25f, 0.25f, 1.0f); } inline ImVec4 InlineRenameFieldHoveredColor() { return InlineRenameFieldBackgroundColor(); } inline ImVec4 InlineRenameFieldActiveColor() { return InlineRenameFieldBackgroundColor(); } inline float InlineRenameFieldHeight() { return ImGui::GetFontSize() + InlineRenameFieldFramePadding().y * 2.0f; } inline ImU32 PanelDividerColor() { return ImGui::GetColorU32(PanelSplitterIdleColor()); } inline float PanelDividerThickness() { return 1.0f; } inline ImVec4 EmptyStateSubtitleColor() { return ImVec4(0.55f, 0.55f, 0.55f, 1.0f); } inline ImVec4 HintTextColor() { return ImVec4(0.53f, 0.53f, 0.53f, 1.0f); } inline ImVec2 BreadcrumbSegmentPadding() { return ImVec2(4.0f, 1.0f); } inline float BreadcrumbSegmentSpacing() { return 3.0f; } inline ImVec4 BreadcrumbSegmentTextColor(bool current = false, bool hovered = false) { if (hovered) { return ImVec4(0.90f, 0.90f, 0.90f, 1.0f); } if (current) { return ImVec4(0.84f, 0.84f, 0.84f, 1.0f); } return ImVec4(0.72f, 0.72f, 0.72f, 1.0f); } inline ImVec4 BreadcrumbSeparatorColor() { return HintTextColor(); } inline float EmptyStateLineOffset() { return 20.0f; } inline ImVec2 InspectorSectionFramePadding() { return ImVec2(6.0f, 4.0f); } inline ImVec2 InspectorSectionItemSpacing() { return ImVec2(6.0f, 0.0f); } inline ImVec2 InspectorActionButtonPadding() { return ImVec2(8.0f, 5.0f); } inline ImVec2 PopupWindowPadding() { return ImVec2(10.0f, 0.0f); } inline ImVec2 ComboPopupWindowPadding() { return ImVec2(5.0f, 0.0f); } inline ImVec2 ComboPopupItemSpacing() { return ImVec2(0.0f, 0.0f); } inline ImVec4 MenuSurfaceColor() { return ImVec4(0.98f, 0.98f, 0.98f, 1.0f); } inline ImVec4 MenuSurfaceHoverColor() { return ImVec4(0.97f, 0.97f, 0.97f, 1.0f); } inline ImVec4 MenuSurfaceActiveColor() { return ImVec4(0.955f, 0.955f, 0.955f, 1.0f); } inline ImVec4 MenuBorderColor() { return ImVec4(0.84f, 0.84f, 0.84f, 1.0f); } inline ImVec4 MenuTextColor() { return ImVec4(0.16f, 0.16f, 0.16f, 1.0f); } inline ImVec4 MenuTextDisabledColor() { return ImVec4(0.47f, 0.47f, 0.47f, 1.0f); } inline float ComboPopupRounding() { return 3.0f; } inline float ComboPopupBorderSize() { return 1.0f; } inline ImVec4 ComboPopupBackgroundColor() { return MenuSurfaceColor(); } inline ImVec4 ComboPopupTextColor() { return MenuTextColor(); } inline ImVec4 ComboPopupTextDisabledColor() { return MenuTextDisabledColor(); } inline ImVec4 ComboPopupItemColor() { return ImVec4(0.0f, 0.0f, 0.0f, 0.0f); } inline ImVec4 ComboPopupItemHoveredColor() { return MenuSurfaceHoverColor(); } inline ImVec4 ComboPopupItemActiveColor() { return MenuSurfaceActiveColor(); } inline ImVec4 ComboPopupCheckMarkColor() { return MenuTextColor(); } inline float PopupWindowRounding() { return 3.0f; } inline float PopupWindowBorderSize() { return 1.0f; } inline float PopupFrameRounding() { return 3.0f; } inline ImVec2 ContextMenuItemSpacing() { return ImVec2(0.0f, 0.0f); } inline ImVec2 ContextMenuFramePadding() { return ImVec2(8.0f, 5.0f); } inline ImVec2 ContextMenuSelectableTextAlign() { return ImVec2(0.0f, 0.5f); } inline float PopupSubmenuArrowExtent() { return 8.0f; } inline float PopupSubmenuArrowTrailingInset() { return 8.0f; } inline float PopupSubmenuOpenOffsetX() { return 0.0f; } inline float PopupFrameBorderSize() { return 1.0f; } inline ImVec4 PopupBackgroundColor() { return MenuSurfaceColor(); } inline ImVec4 PopupBorderColor() { return MenuBorderColor(); } inline ImVec4 PopupTextColor() { return MenuTextColor(); } inline ImVec4 PopupTextDisabledColor() { return MenuTextDisabledColor(); } inline ImVec4 PopupItemColor() { return ImVec4(0.0f, 0.0f, 0.0f, 0.0f); } inline ImVec4 PopupItemHoveredColor() { return MenuSurfaceHoverColor(); } inline ImVec4 PopupItemActiveColor() { return MenuSurfaceActiveColor(); } inline ImVec4 PopupFrameColor() { return MenuSurfaceColor(); } inline ImVec4 PopupFrameHoveredColor() { return MenuSurfaceHoverColor(); } inline ImVec4 PopupFrameActiveColor() { return MenuSurfaceActiveColor(); } inline ImVec4 PopupButtonColor() { return MenuSurfaceColor(); } inline ImVec4 PopupButtonHoveredColor() { return MenuSurfaceHoverColor(); } inline ImVec4 PopupButtonActiveColor() { return MenuSurfaceActiveColor(); } inline ImVec4 PopupCheckMarkColor() { return MenuTextColor(); } inline ImVec2 AssetTileSize() { return ImVec2(104.0f, 82.0f); } inline float HierarchyOverflowButtonWidth() { return 26.0f; } inline ImVec2 ProjectBackButtonSize() { return ImVec2(28.0f, 0.0f); } inline ImVec2 DialogActionButtonSize() { return ImVec2(80.0f, 0.0f); } inline ImVec2 AssetDragPreviewSize() { return ImVec2(24.0f, 20.0f); } inline float AssetTileRounding() { return 2.0f; } inline ImVec4 AssetTileIdleFillColor() { return ImVec4(1.0f, 1.0f, 1.0f, 0.02f); } inline ImVec4 AssetTileIdleBorderColor() { return ImVec4(1.0f, 1.0f, 1.0f, 0.05f); } inline ImVec4 AssetTileHoverFillColor() { return ImVec4(1.0f, 1.0f, 1.0f, 0.04f); } inline ImVec4 AssetTileSelectedFillColor() { return ImVec4(0.61f, 0.61f, 0.61f, 0.12f); } inline ImVec4 AssetTileSelectedBorderColor() { return ImVec4(0.74f, 0.74f, 0.74f, 0.43f); } inline ImVec4 AssetTileDraggedOverlayColor() { return ImVec4(0.0f, 0.0f, 0.0f, 0.24f); } inline ImVec2 AssetTileIconOffset() { return ImVec2(12.0f, 10.0f); } inline ImVec2 AssetTileIconSize() { return ImVec2(32.0f, 24.0f); } inline ImVec2 ProjectAssetTileIconSize() { return ImVec2(72.0f, 72.0f); } inline ImVec2 ProjectAssetTileIconOffset() { return ImVec2(0.0f, 2.0f); } inline ImVec2 FolderAssetTileIconSize() { return ProjectAssetTileIconSize(); } inline ImVec2 FolderAssetTileIconOffset() { return ProjectAssetTileIconOffset(); } inline float AssetTileIconTextGap() { return 4.0f; } inline ImVec2 AssetTileTextPadding() { return ImVec2(6.0f, 10.0f); } inline ImVec4 AssetTileTextColor(bool selected = false) { return selected ? ImVec4(0.93f, 0.93f, 0.93f, 1.0f) : ImVec4(0.76f, 0.76f, 0.76f, 1.0f); } inline ImVec4 BuiltInFolderIconTabColor() { return ImVec4(0.77f, 0.77f, 0.77f, 1.0f); } inline ImVec4 BuiltInFolderIconTopColor() { return ImVec4(0.82f, 0.82f, 0.82f, 1.0f); } inline ImVec4 BuiltInFolderIconBodyColor() { return ImVec4(0.72f, 0.72f, 0.72f, 1.0f); } inline ImVec4 AssetFileIconFillColor() { return ImVec4(0.46f, 0.46f, 0.46f, 1.0f); } inline ImVec4 AssetFileIconLineColor() { return ImVec4(0.74f, 0.74f, 0.74f, 0.90f); } inline ImVec4 AssetFileFoldColor() { return ImVec4(0.92f, 0.92f, 0.92f, 0.16f); } inline ImVec4 ConsoleRowHoverFillColor() { return ImVec4(1.0f, 1.0f, 1.0f, 0.03f); } inline ImVec4 ConsoleRowSelectedFillColor() { return ImVec4(0.26f, 0.33f, 0.43f, 0.95f); } inline ImVec4 ConsoleListBackgroundColor() { return ImVec4(0.205f, 0.205f, 0.205f, 1.0f); } inline ImVec4 ConsoleDetailsBackgroundColor() { return ImVec4(0.185f, 0.185f, 0.185f, 1.0f); } inline ImVec4 ConsoleDetailsHeaderBackgroundColor() { return ImVec4(0.19f, 0.19f, 0.19f, 1.0f); } inline ImVec4 ConsoleSecondaryTextColor() { return ImVec4(0.57f, 0.57f, 0.57f, 1.0f); } inline ImVec4 ConsoleCountBadgeBackgroundColor() { return ImVec4(0.29f, 0.29f, 0.29f, 1.0f); } inline ImVec4 ConsoleCountBadgeTextColor() { return ImVec4(0.88f, 0.88f, 0.88f, 1.0f); } inline ImVec4 ConsoleLogColor() { return ImVec4(0.77f, 0.77f, 0.77f, 1.0f); } inline ImVec4 ConsoleWarningColor() { return ImVec4(0.93f, 0.72f, 0.26f, 1.0f); } inline ImVec4 ConsoleErrorColor() { return ImVec4(0.92f, 0.37f, 0.33f, 1.0f); } inline float ConsoleRowHeight() { return 22.0f; } inline float ConsoleSeverityButtonMinWidth() { return 54.0f; } inline ImVec2 ConsoleSeverityButtonPadding() { return ImVec2(8.0f, 4.0f); } inline float ConsoleBadgeRounding() { return 3.0f; } inline float ConsoleDetailsDefaultHeight() { return 168.0f; } inline float ConsoleDetailsMinHeight() { return 92.0f; } inline float ConsoleListMinHeight() { return 96.0f; } inline float MenuBarStatusRightPadding() { return 20.0f; } inline ImVec4 MenuBarStatusIdleColor() { return ImVec4(0.62f, 0.62f, 0.62f, 1.0f); } inline ImVec4 MenuBarStatusDirtyColor() { return ImVec4(0.82f, 0.82f, 0.82f, 1.0f); } inline ImVec2 VectorAxisInputSpacing() { return ImVec2(6.0f, 0.0f); } inline ImVec2 VectorAxisControlSpacing() { return ImVec2(0.0f, 0.0f); } inline float VectorAxisResetButtonExtraWidth() { return 3.0f; } inline ImVec4 VectorAxisButtonColor() { return ImVec4(0.28f, 0.28f, 0.28f, 1.0f); } inline ImVec4 VectorAxisButtonHoveredColor() { return ImVec4(0.34f, 0.34f, 0.34f, 1.0f); } inline ImVec4 ToolbarButtonColor(bool active) { return active ? ImVec4(0.33f, 0.33f, 0.33f, 1.0f) : ImVec4(0.24f, 0.24f, 0.24f, 1.0f); } inline ImVec4 ToolbarButtonHoveredColor(bool active) { return active ? ImVec4(0.38f, 0.38f, 0.38f, 1.0f) : ImVec4(0.30f, 0.30f, 0.30f, 1.0f); } inline ImVec4 ToolbarButtonActiveColor() { return ImVec4(0.42f, 0.42f, 0.42f, 1.0f); } } } }