5#include <unordered_map>
92 std::unordered_map<BaseNode *, PanelDockState>
States;
资源的强类型引用,同时覆盖持久化 ID 与运行时索引两种边界。
Definition ResourceRef.h:36
Definition DockWorkspace.h:60
void UpdateDrag(float clientX, float clientY)
Definition DockWorkspace.cpp:260
void Reconcile(const std::vector< BaseNode * > &nodes)
Definition DockWorkspace.cpp:97
bool Remove(BaseNode &panel)
Definition DockWorkspace.cpp:436
std::string LastTransactionTrace
Definition DockWorkspace.h:95
std::string DumpDebug() const
Definition DockWorkspace.cpp:489
const PanelDockState * GetState(const BaseNode &panel) const
Definition DockWorkspace.cpp:445
std::unordered_map< BaseNode *, PanelDockState > States
Definition DockWorkspace.h:92
void BeginDrag(BaseNode &panel, float clientX, float clientY)
Definition DockWorkspace.cpp:183
PanelDragSession Drag
Definition DockWorkspace.h:63
void BeginPanelDrag(PanelNode &panel, PanelGroupNode &sourceGroup, size_t sourceTabIndex, float clientX, float clientY)
Definition DockWorkspace.cpp:212
void ApplyLayout(float width, float height)
Definition DockWorkspace.cpp:150
bool CommitDrag(float clientX, float clientY)
Definition DockWorkspace.cpp:358
bool IsDocked(const BaseNode &panel) const
Definition DockWorkspace.cpp:465
void BuildInitialTree(const std::vector< BaseNode * > &panels, float width, float height)
Definition DockWorkspace.cpp:39
std::vector< BaseNode * > GetFloatingPanels() const
Definition DockWorkspace.cpp:456
std::vector< BaseNode * > PendingInitialPanels
Definition DockWorkspace.h:93
bool PlaceNew(BaseNode &group, DockNodeID target, DockSide side, const DockRect &floatingRect)
Definition DockWorkspace.cpp:411
bool UpdateFloatingRect(BaseNode &panel, const DockRect &rect)
Definition DockWorkspace.cpp:475
void CancelDrag()
Definition DockWorkspace.cpp:409
bool IsFloating(const BaseNode &panel) const
Definition DockWorkspace.cpp:470
bool ResizeSplitter(DockNodeID split, float clientX, float clientY)
Definition DockWorkspace.cpp:484
void ApplyPanelRect(BaseNode &panel, const DockRect &rect, bool visible)
Definition DockWorkspace.cpp:137
DockTree Tree
Definition DockWorkspace.h:62
DockSide DetectSide(const DockRect &rect, float clientX, float clientY) const
Definition DockWorkspace.cpp:243
bool Validate(std::string *error=nullptr) const
Definition DockWorkspace.cpp:504
Definition PanelGroupNode.h:64
Definition PanelNode.h:19
Definition Application.h:18
DockSide
Definition DockTree.h:27
DragPayloadType
Definition DockWorkspace.h:13
PanelDragState
Definition DockWorkspace.h:12
PanelPlacement
Definition DockTree.h:28
std::uint64_t DockNodeID
Definition DockTree.h:11
Definition DockWorkspace.h:50
PanelPlacement Placement
Definition DockWorkspace.h:51
DockRect FloatingRect
Definition DockWorkspace.h:53
Definition DockWorkspace.h:16
int SourceTabIndex
Definition DockWorkspace.h:30
BaseNode * Panel
Definition DockWorkspace.h:28
float MouseClientY
Definition DockWorkspace.h:38
PanelDragState State
Definition DockWorkspace.h:17
float PressClientX
Definition DockWorkspace.h:35
PanelNode * PayloadPanel
Definition DockWorkspace.h:19
float MouseClientX
Definition DockWorkspace.h:37
PanelGroupNode * TargetGroup
Definition DockWorkspace.h:26
DragPayloadType PayloadType
Definition DockWorkspace.h:18
float GrabOffsetX
Definition DockWorkspace.h:39
DockRect SourceFloatingRect
Definition DockWorkspace.h:34
DockRect FloatingPreviewRect
Definition DockWorkspace.h:41
DockNodeID DockTarget
Definition DockWorkspace.h:42
DockRect DockPreviewRect
Definition DockWorkspace.h:46
float PressClientY
Definition DockWorkspace.h:36
float GrabOffsetY
Definition DockWorkspace.h:40
PanelGroupNode * PayloadGroup
Definition DockWorkspace.h:20
bool SourceWasFloating
Definition DockWorkspace.h:31
bool PreviewVisible
Definition DockWorkspace.h:33
DockSide Side
Definition DockWorkspace.h:43
int TargetTabIndex
Definition DockWorkspace.h:45
PanelGroupNode * SourceGroup
Definition DockWorkspace.h:21
DockNodeID SourceNode
Definition DockWorkspace.h:29