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

36 lines
1.1 KiB
Markdown
Raw Normal View History

2026-03-27 14:40:29 +08:00
# DockHostStyle
**命名空间**: `XCEngine::Editor::UI`
**类型**: `class`
**源文件**: `editor/src/UI/DockHostStyle.h`
**描述**: 为主 DockSpace 应用一组临时样式覆盖的 RAII scope。
## 概述
`DockHostStyleScope` 的角色很单一:在进入主 DockSpace 绘制前压入一组 docking 相关样式,在离开时自动恢复。
它主要服务于 [`DockLayoutController`](../../Layout/DockLayoutController/DockLayoutController.md)。
## 当前实现
- 构造时 `PushStyleVar` 5 次,`PushStyleColor` 7 次
- 覆盖内容主要是:
- Dock tab padding
- Tab 边框与 overline
- Tab 的普通 / hover / selected / dimmed 颜色
- 析构时自动对称 `Pop`
## 设计说明
这是一种标准 RAII UI 封装。
对于 ImGui 这种依赖成对 push/pop 的库scope 包装几乎是最稳妥的工程化手段之一,能显著减少忘记恢复样式导致的串色问题。
## 相关文档
- [UI](../UI.md)
- [StyleTokens](../StyleTokens/StyleTokens.md)
- [DockLayoutController](../../Layout/DockLayoutController/DockLayoutController.md)