1.7 KiB
1.7 KiB
PropertyGrid
命名空间: XCEngine::Editor::UI
类型: header-helper
源文件: editor/src/UI/PropertyGrid.h
描述: 在 Inspector 中提供统一的属性行控件,并集成交互式撤销辅助。
概述
PropertyGrid.h 是当前 Inspector 属性编辑体验的中枢之一。
它在 ScalarControls 和 VectorControls 之上封装了一组更贴近 Inspector 语义的 API:
DrawPropertyFloatDrawPropertyBoolDrawPropertyColor4DrawPropertyComboDrawPropertyVec3InputApplyPropertyChange
当前实现
- 统一使用
InspectorPropertyLabelWidth()作为标签列宽 ApplyPropertyChange在字段变化时可选地调用undoManager->BeginInteractiveChange()- 具体组件编辑器通常会先调用
DrawProperty*,再把结果交给ApplyPropertyChange
设计说明
商业编辑器里的 Inspector 很少直接暴露底层控件 API,而是会先收口成属性网格层。
这样做的好处是:
- 全部组件 editor 的标签宽度、排版和交互节奏统一
- 撤销系统可以自然嵌入属性修改路径
- 组件编辑器代码更接近“编辑语义”,而不是原始 ImGui 调用
当前限制
- 目前仍然是手写属性 helper,不是基于反射的通用属性系统
ApplyPropertyChange只负责开始交互式改动,最终收尾仍要靠 Inspector 路由层- 主要面向 Inspector,不是通用任意表单框架