1.9 KiB
1.9 KiB
Widgets
命名空间: XCEngine::Editor::UI
类型: header-helper
源文件: editor/src/UI/Widgets.h
描述: 提供更接近编辑器业务语义的中高层 widget,如菜单命令、层级树节点、资产格子、组件区块和对话框按钮行。
概述
如果说 Core 是底层 UI 包装,那么 Widgets.h 就是更贴近编辑器业务的通用组件库。
当前文件涵盖的内容很多,主要可以分成几类:
- 菜单与命令:
MenuCommand、DrawMenuScope、DrawMenuCommands - 工具栏:搜索框、标签、切换按钮、面包屑
- Hierarchy / Project:
DrawHierarchyNode、DrawAssetTile、DrawAssetIcon - Inspector:
BeginComponentSection - 对话框与 tooltip:
DrawDialogActionRow、BeginTitledPopup、BeginTitledTooltip - Console:
DrawConsoleLogRow
设计说明
这类文件在商业编辑器里通常非常关键,因为它决定了“多个面板是否共享同一种交互语言”。
比如:
- Hierarchy 节点的点击、展开和双击
- Project 资源网格的卡片样式
- Inspector 组件区块的标题和右键菜单
如果这些都散落在各个面板里,最终 UI 行为会越来越不一致。
当前实现特征
MenuCommand把菜单项和分隔线统一成一个小数据结构AssetTileResult、HierarchyNodeResult等结果结构让调用方更容易写流程判断- 组件区块与工具栏、搜索框都已经形成可复用构件
当前限制
- 仍然是 header inline helpers,而不是独立 widget 类库
- 某些 widget 仍然高度耦合当前编辑器视觉风格
- 还没有更高级的虚拟列表、树过滤高亮或多列资源浏览控件