Files
XCEngine/docs/api/XCEngine/Editor/Actions/ConsoleActionRouter/ConsoleActionRouter.md

2.4 KiB
Raw Blame History

ConsoleActionRouter

命名空间: XCEngine::Editor::Actions

类型: header-helper

源文件: editor/src/Actions/ConsoleActionRouter.h

描述: 为 Console 面板提供一组轻量 toolbar/action helper当前保留基础控制台动作绑定但已不再承载完整 Console 面板渲染主路径。

概述

ConsoleActionRouter 当前主要提供两类内联 helper

  • DrawConsoleToolbarActions 绘制清空按钮和 Info / Warn / Error 过滤切换
  • DrawConsoleLogRows 读取 EditorConsoleSink 中的日志,并按过滤条件输出到面板

但需要注意,ConsolePanel.cpp 当前已经演化出比这组 helper 更完整的控制台工作流:

  • play mode 事件订阅
  • search + collapse 聚合
  • 键盘选择与复制
  • splitter 和详情区
  • error pause 扫描

也就是说,这个 header 现在更像“保留的轻量动作 helper”而不是 Console 面板的唯一 presenter 层。

当前实现

  • 数据源固定为 EditorConsoleSink
  • 过滤状态由 ConsoleFilterState 持有
  • DrawConsoleToolbarActions(...) 当前会绘制:
    • Clear
    • Collapse
    • Clear on Play
    • Error Pause
    • log / warning / error filter
  • DrawConsoleLogRows(...) 当前会遍历 sink 的日志副本,按过滤状态输出基础文本行

设计说明

这层拆分的价值仍然在于把“日志存储”和“基础动作 helper”从面板类里分离出来

  • EditorConsoleSink 关注线程安全和日志缓存
  • ConsoleActionRouter 关注一小组可复用的工具栏与列表 helper
  • UI 辅助函数负责外观和文本格式

但按当前版本,完整的 Console 面板交互已经不再只依赖这里;文档和调用方都不应把它误解成现行主渲染入口。

当前限制

  • 这里只覆盖较基础的 helper当前并不表达 ConsolePanel 全部行为。
  • DrawConsoleLogRows(...) 仍基于简单遍历日志副本的方式,不包含当前 ConsolePanel 里的搜索、折叠聚合、详情区和 source opening 流程。

相关文档