slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
Public 成员函数 | Public 属性 | Private 成员函数 | Private 属性 | 所有成员列表
z8::ui::DockWorkspace类 参考final

#include <DockWorkspace.h>

z8::ui::DockWorkspace 的协作图:
Collaboration graph
[图例]

Public 成员函数

void ApplyLayout (float width, float height)
 
void BeginDrag (BaseNode &panel, float clientX, float clientY)
 
void BeginPanelDrag (PanelNode &panel, PanelGroupNode &sourceGroup, size_t sourceTabIndex, float clientX, float clientY)
 
void CancelDrag ()
 
bool CommitDrag (float clientX, float clientY)
 
DockSide DetectSide (const DockRect &rect, float clientX, float clientY) const
 
const PanelDockStateGetState (const BaseNode &panel) const
 
std::vector< BaseNode * > GetFloatingPanels () const
 
bool IsDocked (const BaseNode &panel) const
 
bool IsFloating (const BaseNode &panel) const
 
bool PlaceNew (BaseNode &group, DockNodeID target, DockSide side, const DockRect &floatingRect)
 
void Reconcile (const std::vector< BaseNode * > &nodes)
 
bool Remove (BaseNode &panel)
 
void UpdateDrag (float clientX, float clientY)
 
bool UpdateFloatingRect (BaseNode &panel, const DockRect &rect)
 
bool ResizeSplitter (DockNodeID split, float clientX, float clientY)
 
std::string DumpDebug () const
 
bool Validate (std::string *error=nullptr) const
 

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 *, PanelDockStateStates
 
std::vector< BaseNode * > PendingInitialPanels
 
std::string LastTransactionTrace
 

详细描述

单个 Layout 的 Dock 上下文,统一管理 Docked/Floating 互斥关系和 DragSession。 Client 坐标与 DockRect 均为窗口客户区 UI 像素,禁止在此层混入屏幕坐标。

成员函数说明

◆ ApplyLayout()

void DockWorkspace::ApplyLayout ( float width,
float height )
函数调用图:
这是这个函数的调用关系图:

◆ ApplyPanelRect()

void DockWorkspace::ApplyPanelRect ( BaseNode & panel,
const DockRect & rect,
bool visible )
private
这是这个函数的调用关系图:

◆ BeginDrag()

void DockWorkspace::BeginDrag ( BaseNode & panel,
float clientX,
float clientY )
函数调用图:
这是这个函数的调用关系图:

◆ BeginPanelDrag()

void DockWorkspace::BeginPanelDrag ( PanelNode & panel,
PanelGroupNode & sourceGroup,
size_t sourceTabIndex,
float clientX,
float clientY )
函数调用图:
这是这个函数的调用关系图:

◆ BuildInitialTree()

void DockWorkspace::BuildInitialTree ( const std::vector< BaseNode * > & panels,
float width,
float height )
private
函数调用图:
这是这个函数的调用关系图:

◆ CancelDrag()

void DockWorkspace::CancelDrag ( )
这是这个函数的调用关系图:

◆ CommitDrag()

bool DockWorkspace::CommitDrag ( float clientX,
float clientY )
函数调用图:
这是这个函数的调用关系图:

◆ DetectSide()

DockSide DockWorkspace::DetectSide ( const DockRect & rect,
float clientX,
float clientY ) const
这是这个函数的调用关系图:

◆ DumpDebug()

std::string DockWorkspace::DumpDebug ( ) const
函数调用图:

◆ GetFloatingPanels()

std::vector< BaseNode * > DockWorkspace::GetFloatingPanels ( ) const

返回当前所有 Floating Group;调用者不得通过结果转移节点所有权。

◆ GetState()

const PanelDockState * DockWorkspace::GetState ( const BaseNode & panel) const
这是这个函数的调用关系图:

◆ IsDocked()

bool DockWorkspace::IsDocked ( const BaseNode & panel) const
函数调用图:

◆ IsFloating()

bool DockWorkspace::IsFloating ( const BaseNode & panel) const
函数调用图:
这是这个函数的调用关系图:

◆ PlaceNew()

bool DockWorkspace::PlaceNew ( BaseNode & group,
DockNodeID target,
DockSide side,
const DockRect & floatingRect )

为 Commit 阶段新建的单页 Group 建立唯一 Dock/Floating 归属。

函数调用图:
这是这个函数的调用关系图:

◆ Reconcile()

void DockWorkspace::Reconcile ( const std::vector< BaseNode * > & nodes)
函数调用图:
这是这个函数的调用关系图:

◆ Remove()

bool DockWorkspace::Remove ( BaseNode & panel)

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

函数调用图:
这是这个函数的调用关系图:

◆ ResizeSplitter()

bool DockWorkspace::ResizeSplitter ( DockNodeID split,
float clientX,
float clientY )
函数调用图:
这是这个函数的调用关系图:

◆ UpdateDrag()

void DockWorkspace::UpdateDrag ( float clientX,
float clientY )
函数调用图:
这是这个函数的调用关系图:

◆ UpdateFloatingRect()

bool DockWorkspace::UpdateFloatingRect ( BaseNode & panel,
const DockRect & rect )

原生浮动宿主调整尺寸后回写唯一 FloatingRect,不修改 DockTree。

◆ Validate()

bool DockWorkspace::Validate ( std::string * error = nullptr) const

校验 Docked/Floating 互斥与树内 Panel 唯一归属。

函数调用图:

类成员变量说明

◆ Drag

PanelDragSession z8::ui::DockWorkspace::Drag

◆ LastTransactionTrace

std::string z8::ui::DockWorkspace::LastTransactionTrace
private

最近一次结构提交的前后快照,用于复现拖放错误。

◆ PendingInitialPanels

std::vector<BaseNode *> z8::ui::DockWorkspace::PendingInitialPanels
private

◆ States

std::unordered_map<BaseNode *, PanelDockState> z8::ui::DockWorkspace::States
private

◆ Tree

DockTree z8::ui::DockWorkspace::Tree

该类的文档由以下文件生成: