|
slot 0.0.1
A real time UI render framework
|
#include <DockWorkspace.h>

Public 属性 | |
| DockTree | Tree |
| PanelDragSession | Drag |
Private 成员函数 | |
| void | ApplyPanelRect (BaseNode &panel, const DockRect &rect, bool visible) |
| void | BuildInitialTree (const std::vector< BaseNode * > &panels, float width, float height) |
Private 属性 | |
| std::unordered_map< BaseNode *, PanelDockState > | States |
| std::vector< BaseNode * > | PendingInitialPanels |
| std::string | LastTransactionTrace |
单个 Layout 的 Dock 上下文,统一管理 Docked/Floating 互斥关系和 DragSession。 Client 坐标与 DockRect 均为窗口客户区 UI 像素,禁止在此层混入屏幕坐标。
|
private |



| void DockWorkspace::BeginPanelDrag | ( | PanelNode & | panel, |
| PanelGroupNode & | sourceGroup, | ||
| size_t | sourceTabIndex, | ||
| float | clientX, | ||
| float | clientY ) |


|
private |


| void DockWorkspace::CancelDrag | ( | ) |


| std::string DockWorkspace::DumpDebug | ( | ) | const |

| std::vector< BaseNode * > DockWorkspace::GetFloatingPanels | ( | ) | const |
返回当前所有 Floating Group;调用者不得通过结果转移节点所有权。
| const PanelDockState * DockWorkspace::GetState | ( | const BaseNode & | panel | ) | const |

| bool DockWorkspace::PlaceNew | ( | BaseNode & | group, |
| DockNodeID | target, | ||
| DockSide | side, | ||
| const DockRect & | floatingRect ) |
为 Commit 阶段新建的单页 Group 建立唯一 Dock/Floating 归属。


在控件所有权释放前清除 Group 的 Dock/Floating 唯一归属。


| bool DockWorkspace::ResizeSplitter | ( | DockNodeID | split, |
| float | clientX, | ||
| float | clientY ) |


原生浮动宿主调整尺寸后回写唯一 FloatingRect,不修改 DockTree。
校验 Docked/Floating 互斥与树内 Panel 唯一归属。

| PanelDragSession z8::ui::DockWorkspace::Drag |
|
private |
最近一次结构提交的前后快照,用于复现拖放错误。
|
private |
|
private |
| DockTree z8::ui::DockWorkspace::Tree |