36 lines
1.1 KiB
Markdown
36 lines
1.1 KiB
Markdown
|
|
# 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)
|