2.0 KiB
2.0 KiB
MainMenuActionRouter
命名空间: XCEngine::Editor::Actions
类型: header-helper
源文件: editor/src/Actions/MainMenuActionRouter.h
描述: 实现主菜单栏的文件、编辑、视图、帮助菜单,以及相应的全局快捷键和弹窗入口。
概述
MainMenuActionRouter 是 MenuBar 面板背后的实际逻辑层。当前它负责:
- 新建、打开、保存场景
- 撤销与重做
- 请求退出编辑器
- 请求重置 Dock 布局
- 打开 About 弹窗
- 在菜单栏右侧绘制当前场景状态
当前实现
ExecuteNewScene/ExecuteOpenScene/ExecuteSaveScene最终调用SceneCommandsRequestEditorExit发布EditorExitRequestedEventRequestDockLayoutReset发布DockLayoutResetRequestedEventRequestAboutPopup通过DeferredPopupState延迟打开 About 对话框HandleMenuBarShortcuts目前使用GlobalShortcutContext()
MenuBar.cpp 的 Render() 顺序也比较清晰:先处理快捷键,再绘制菜单栏,最后绘制弹窗覆盖层。
设计说明
把主菜单作为单独 router,而不是直接在 MenuBar::Render 里写一大串 ImGui::MenuItem,有两个明显收益:
- 菜单项逻辑可以和命令层、事件总线清晰对接
- 快捷键和菜单点击能共享同一套执行入口
这正是商业编辑器常见的菜单层设计方式。菜单不是业务逻辑本体,它只是统一入口。
当前限制
- 文件菜单当前只覆盖场景级工作流,没有项目级导入、构建或设置入口
- About 弹窗内容仍然是开发中状态说明,不是正式产品级信息页
- 全局快捷键冲突处理比较简单,尚未提供用户可配置热键系统