From 2751b27d90f60b1d28dbbcbfcf0fa7e8876d77bd Mon Sep 17 00:00:00 2001 From: ChestnutYueyue <952134128@qq.com> Date: Wed, 11 Feb 2026 13:10:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E4=B8=BAUI=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=93=BE=E5=BC=8F=E8=B0=83=E7=94=A8=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E5=99=A8=E6=96=B9=E6=B3=95=E5=92=8C=E5=9D=90=E6=A0=87?= =?UTF-8?q?=E7=A9=BA=E9=97=B4=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为ProgressBar、Slider、RadioButton、Label、CheckBox、Button等UI组件添加链式调用构建器方法,简化组件创建和配置流程。 新增CoordinateSpace枚举支持三种坐标空间:Screen(屏幕空间)、World(世界空间)和Camera(相机空间)。 重构onDraw方法为onDrawWidget,统一处理不同坐标空间的渲染逻辑。 更新示例代码展示如何使用链式调用和坐标空间功能。 --- Extra2D/include/extra2d/ui/button.h | 86 ++++- Extra2D/include/extra2d/ui/check_box.h | 23 +- Extra2D/include/extra2d/ui/label.h | 23 +- Extra2D/include/extra2d/ui/progress_bar.h | 17 +- Extra2D/include/extra2d/ui/radio_button.h | 19 +- Extra2D/include/extra2d/ui/slider.h | 19 +- Extra2D/include/extra2d/ui/text.h | 34 +- Extra2D/include/extra2d/ui/widget.h | 43 +++ Extra2D/src/ui/button.cpp | 395 ++++++++++------------ Extra2D/src/ui/check_box.cpp | 73 +++- Extra2D/src/ui/label.cpp | 73 +++- Extra2D/src/ui/progress_bar.cpp | 61 +++- Extra2D/src/ui/radio_button.cpp | 76 ++++- Extra2D/src/ui/slider.cpp | 143 +++++++- Extra2D/src/ui/text.cpp | 135 ++++++-- Extra2D/src/ui/widget.cpp | 103 +++++- examples/hello_world/main.cpp | 54 +-- 17 files changed, 1091 insertions(+), 286 deletions(-) diff --git a/Extra2D/include/extra2d/ui/button.h b/Extra2D/include/extra2d/ui/button.h index 980bed0..a1d61af 100644 --- a/Extra2D/include/extra2d/ui/button.h +++ b/Extra2D/include/extra2d/ui/button.h @@ -22,52 +22,118 @@ enum class ImageScaleMode { class Button : public Widget { public: Button(); + explicit Button(const String &text); ~Button() override = default; + // ------------------------------------------------------------------------ + // 静态创建方法 + // ------------------------------------------------------------------------ static Ptr