From 8111a99fc00115ee8aa934065df2cf78b71270ab Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Wed, 15 Jul 2026 17:38:12 +0800 Subject: [PATCH] feat(ui): add child anchor and content sizing to column layout --- include/Cubed/ui/column_layout.hpp | 8 +++++- src/debug_collector.cpp | 2 +- src/ui/column_layout.cpp | 41 +++++++++++++++++------------- src/ui/pause_menu_ui_manager.cpp | 5 ++++ src/ui/settings_ui.cpp | 5 +++- 5 files changed, 41 insertions(+), 20 deletions(-) diff --git a/include/Cubed/ui/column_layout.hpp b/include/Cubed/ui/column_layout.hpp index 9a426bd..e687897 100644 --- a/include/Cubed/ui/column_layout.hpp +++ b/include/Cubed/ui/column_layout.hpp @@ -1,6 +1,9 @@ #pragma once #include "Cubed/ui/widget.hpp" namespace Cubed { + +enum class ColumnLayoutAnchor { LEFT, CENTER, RIGHT }; + class ColumnLayout : public Widget { public: ColumnLayout(const ColumnLayout&) = delete; @@ -18,10 +21,13 @@ public: ColumnLayout& set_spacing(int spacing); // No need for parent node pointer; do not modify children's anchors and // scale. - + ColumnLayout& set_child_anchor(ColumnLayoutAnchor anchor); void layout(); private: int m_spacing = 0; + float m_content_height = 0; + float m_content_width = 0; + ColumnLayoutAnchor m_layout_anchor = ColumnLayoutAnchor::CENTER; }; } // namespace Cubed \ No newline at end of file diff --git a/src/debug_collector.cpp b/src/debug_collector.cpp index 3eb4ba3..f8f58ef 100644 --- a/src/debug_collector.cpp +++ b/src/debug_collector.cpp @@ -19,7 +19,7 @@ void DebugCollector::init(int width, int height) { m_widget.set_spacing(15); m_widget.set_anchor(Anchor::TOP_LEFT); m_widget.set_offset({0, 5}); - + m_widget.set_child_anchor(ColumnLayoutAnchor::LEFT); // version_text auto& version_text = m_widget.add_child