docs: add Editor API documentation

This commit is contained in:
2026-03-27 14:40:29 +08:00
parent 3e2608a802
commit 94c56dd279
87 changed files with 3795 additions and 2 deletions

View File

@@ -0,0 +1,52 @@
# ProjectActionRouter
**命名空间**: `XCEngine::Editor::Actions`
**类型**: `header-helper`
**源文件**: `editor/src/Actions/ProjectActionRouter.h`
**描述**: 封装 Project 面板中的资源选择、导航、拖放、上下文菜单和创建文件夹弹窗流程。
## 概述
`ProjectActionRouter``ProjectPanel.cpp` 可以专注于资源网格布局,而把交互行为集中管理。当前覆盖的能力包括:
- 资源项选中与右键上下文菜单
- 文件夹打开与返回上级导航
- 资源拖放到目录
- 空白区域上下文菜单
- “Create Folder” 弹窗与提交
## 当前实现
- 资源拖拽载荷类型固定为 `"ASSET_ITEM"`
- 打开资源时只支持两类:文件夹与 `type == "Scene"` 的资源
- 删除资源调用 [`DeleteAsset`](../../Commands/ProjectCommands/ProjectCommands.md)
- 移动资源调用 `MoveAssetToFolder`
- 创建目录弹窗依赖 [`TextInputPopupState`](../../UI/PopupState/PopupState.md)
`FindProjectItemIndex` 还额外做了 `fullPath` 匹配,这说明当前实现允许在某些刷新路径下通过值语义重新定位资源项,而不是完全依赖共享指针地址。
## 设计说明
Project 面板本质上是一个资产浏览器。
把这些动作单独放在 router 层,有助于把以下两类变化隔开:
- 视觉变化:列表改网格、加图标、加搜索、加分栏
- 交互语义变化:打开、删除、移动、创建目录
这样后续即使 Project 面板彻底重画 UI动作语义仍然可以稳定保留。
## 当前限制
- 当前资源系统没有更细的资源类型分发,场景之外的资源多数只能展示,不能打开
- 资源重命名、复制、粘贴尚未实现
- 没有回收站、删除确认和批量操作
## 相关文档
- [Actions](../Actions.md)
- [ProjectPanel](../../panels/ProjectPanel/ProjectPanel.md)
- [ProjectCommands](../../Commands/ProjectCommands/ProjectCommands.md)
- [PopupState](../../UI/PopupState/PopupState.md)