Files
XCEngine/docs/api/XCEngine/Editor/UI/PropertyGrid/PropertyGrid.md

1.7 KiB
Raw Blame History

PropertyGrid

命名空间: XCEngine::Editor::UI

类型: header-helper

源文件: editor/src/UI/PropertyGrid.h

描述: 在 Inspector 中提供统一的属性行控件,并集成交互式撤销辅助。

概述

PropertyGrid.h 是当前 Inspector 属性编辑体验的中枢之一。
它在 ScalarControlsVectorControls 之上封装了一组更贴近 Inspector 语义的 API

  • DrawPropertyFloat
  • DrawPropertyBool
  • DrawPropertyColor4
  • DrawPropertyCombo
  • DrawPropertyVec3Input
  • ApplyPropertyChange

当前实现

  • 统一使用 InspectorPropertyLabelWidth() 作为标签列宽
  • ApplyPropertyChange 在字段变化时可选地调用 undoManager->BeginInteractiveChange()
  • 具体组件编辑器通常会先调用 DrawProperty*,再把结果交给 ApplyPropertyChange

设计说明

商业编辑器里的 Inspector 很少直接暴露底层控件 API而是会先收口成属性网格层。
这样做的好处是:

  • 全部组件 editor 的标签宽度、排版和交互节奏统一
  • 撤销系统可以自然嵌入属性修改路径
  • 组件编辑器代码更接近“编辑语义”,而不是原始 ImGui 调用

当前限制

  • 目前仍然是手写属性 helper不是基于反射的通用属性系统
  • ApplyPropertyChange 只负责开始交互式改动,最终收尾仍要靠 Inspector 路由层
  • 主要面向 Inspector不是通用任意表单框架

相关文档