refactor(gui): reorganize background rendering and layout helpers

- Moved background rendering functionality from the editor to a dedicated GUI module, enhancing modularity and separation of concerns.
- Introduced layout helpers for consistent theme-aware sizing across the GUI, improving UI consistency and maintainability.
- Updated CMake configuration to reflect the new structure, ensuring proper linkage of the background renderer and layout helpers.

Benefits:
- Improved organization of GUI components, facilitating easier updates and enhancements.
- Enhanced user interface consistency through theme-aware layout management.
This commit is contained in:
scawful
2025-10-12 01:40:46 -04:00
parent f4d8ade66d
commit b3005b8a2b
26 changed files with 1544 additions and 194 deletions

View File

@@ -385,5 +385,29 @@ void DrawCanvasLabels(const CanvasRenderContext& ctx,
}
} // namespace CanvasUtils
// CanvasConfig theme-aware methods implementation
float CanvasConfig::GetToolbarHeight() const {
if (!use_theme_sizing) {
return 32.0f; // Legacy fixed height
}
// Use layout helpers for theme-aware sizing
// We need to include layout_helpers.h in the implementation file
// For now, return a reasonable default that respects ImGui font size
return ImGui::GetFontSize() * 0.75f; // Will be replaced with LayoutHelpers call
}
float CanvasConfig::GetGridSpacing() const {
if (!use_theme_sizing) {
return grid_step; // Use configured grid_step as-is
}
// Apply minimal theme-aware adjustment based on font size
// Grid should stay consistent, but scale slightly with UI density
float base_spacing = ImGui::GetFontSize() * 0.5f;
return std::max(grid_step, base_spacing);
}
} // namespace gui
} // namespace yaze