UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SDockingArea.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Layout/Visibility.h"
8#include "Input/Reply.h"
9#include "Widgets/SOverlay.h"
10#include "Widgets/SWindow.h"
15
16class STabSidebar;
17
24
29{
30public:
31
36 {
37 // Visible by default, but don't absorb clicks
39 }
40
41 /* The window whose content area this dock area is directly embedded within. By default, ShouldManageParentWindow is
42 set to true, which means the dock area will also destroy the window when the last tab goes away. Assigning a
43 parent window also allows the docking area to embed title area widgets (minimize, maximize, etc) into its content area */
44 SLATE_ARGUMENT( TSharedPtr<SWindow>, ParentWindow )
45
46
48
49
53
55
56 SLATE_API void Construct( const FArguments& InArgs, const TSharedRef<FTabManager>& InTabManager, const TSharedRef<FTabManager::FArea>& PersistentNode );
57
58 virtual Type GetNodeType() const override
59 {
61 }
62
66
69
70 SLATE_API virtual void OnDragEnter( const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent ) override;
71 SLATE_API virtual void OnDragLeave( const FDragDropEvent& DragDropEvent ) override;
72
73 SLATE_API virtual FReply OnDrop( const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent ) override;
74
76
78
79 // Show the dock-from-outside dock targets
80 SLATE_API void ShowCross();
81
82 // Hide the dock-from-outside dock targets
83 SLATE_API void HideCross();
84
89
91
93
95
103
110
115
121
128
133
138
139 bool CanHaveSidebar() const { return bCanHaveSidebar; }
140
143
145 void ClosePanelDrawer();
146
149
151 bool IsPanelDrawerOpen() const;
152
154 bool HasPanelDrawer() const;
155
158
161
164
167
170
173
176
182
184 void CleanPanelDrawer();
185
188
189protected:
191
192private:
193
195 TSharedPtr<SDockingArea> GetTopLevelDockingArea() const;
196
197 SLATE_API EVisibility TargetCrossVisibility() const;
198 SLATE_API EVisibility TargetCrossCenterVisibility() const;
200 SLATE_API void DockFromOutside(SDockingNode::RelativeDirection Direction, const FDragDropEvent& DragDropEvent);
201
203 SLATE_API void OnOwningWindowBeingDestroyed(const TSharedRef<SWindow>& WindowBeingDestroyed);
204
206 SLATE_API void OnOwningWindowActivated();
207
208 SLATE_API virtual void OnLiveTabAdded() override;
209
217 SLATE_API void UpdateWindowChromeAndSidebar();
218
220private:
222 TSharedPtr<STabSidebar> LeftSidebar;
223 TSharedPtr<STabSidebar> RightSidebar;
224
227 TWeakPtr<SWindow> ParentWindowPtr;
228
233 SOverlay::FOverlaySlot* WindowControlsArea;
234
236 bool bManageParentWindow;
237
239 TWeakPtr<FTabManager> MyTabManager;
240
242 bool bIsOverlayVisible;
243
245 bool bIsCenterTargetVisible;
246
248 bool bCleanUpUponTabRelocation;
249
251 bool bCanHaveSidebar;
252
255
257 TSharedPtr<UE::Slate::Private::FPanelDrawerData> HiddenPanelDrawerTabToReopenOnRestore;
259};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
return true
Definition ExternalRpcRegistry.cpp:601
ESidebarLocation
Definition TabManager.h:53
Definition DragAndDrop.h:141
Definition Reply.h:24
Definition TabManager.h:431
Definition SDockingArea.h:29
TSharedPtr< SDockTab > ClosePanelDrawerForTransfer()
Definition SDockingArea.cpp:600
virtual SLATE_API FReply OnDrop(const FGeometry &MyGeometry, const FDragDropEvent &DragDropEvent) override
Definition SDockingArea.cpp:203
SLATE_API void HideCross()
Definition SDockingArea.cpp:273
void DetachPanelDrawerArea()
Definition SDockingArea.cpp:720
SLATE_API void OnTabFoundNewHome(const TSharedRef< SDockTab > &RelocatedTab, const TSharedRef< SWindow > &NewOwnerWindow)
Definition SDockingArea.cpp:239
void SetPanelDrawerHiddenActiveTab(TSharedRef< UE::Slate::Private::FPanelDrawerData > &&InPanelDrawerData)
Definition SDockingArea.cpp:877
SLATE_API bool TryOpenSidebarDrawer(TSharedRef< SDockTab > TabToOpen) const
Definition SDockingArea.cpp:525
TMap< FTabId, TSharedRef< SDockTab > > GetPanelDrawerKeepAliveTabs() const
Definition SDockingArea.cpp:780
virtual SLATE_API SDockingNode::ECleanupRetVal CleanUpNodes() override
Definition SDockingArea.cpp:890
SLATE_API TSharedRef< FTabManager > GetTabManager() const
Definition SDockingArea.cpp:446
SLATE_API bool RestoreTabFromSidebar(TSharedRef< SDockTab > TabToRemove)
Definition SDockingArea.cpp:510
SLATE_API void Construct(const FArguments &InArgs, const TSharedRef< FTabManager > &InTabManager, const TSharedRef< FTabManager::FArea > &PersistentNode)
Definition SDockingArea.cpp:17
virtual SLATE_API void OnDragEnter(const FGeometry &MyGeometry, const FDragDropEvent &DragDropEvent) override
Definition SDockingArea.cpp:182
SLATE_API TSharedPtr< SWindow > GetParentWindow() const
Definition SDockingArea.cpp:263
virtual SLATE_API void OnDragLeave(const FDragDropEvent &DragDropEvent) override
Definition SDockingArea.cpp:195
SLATE_API bool IsTabInSidebar(TSharedRef< SDockTab > Tab) const
Definition SDockingArea.cpp:515
SLATE_API void CleanUp(ELayoutModification RemovalMethod)
Definition SDockingArea.cpp:278
virtual SLATE_API TSharedPtr< SDockingArea > GetDockArea() override
Definition SDockingArea.cpp:253
TSharedPtr< SDockTab > GetPanelDrawerSystemHostedTab(const FTabId &TabId) const
Definition SDockingArea.cpp:637
void ClosePanelDrawer()
Definition SDockingArea.cpp:583
bool IsPanelDrawerOpen() const
Definition SDockingArea.cpp:623
SLATE_API void SetParentWindow(const TSharedRef< SWindow > &NewParentWindow)
Definition SDockingArea.cpp:315
void CleanPanelDrawer()
Definition SDockingArea.cpp:843
SLATE_BEGIN_ARGS(SDockingArea)
Definition SDockingArea.h:32
void SetPanelDrawerArea(const TSharedPtr< UE::Slate::Private::SPanelDrawerArea > &InPanelDrawerArea)
Definition SDockingArea.cpp:678
SLATE_API TArray< TSharedRef< SDockTab > > GetAllSidebarTabs() const
Definition SDockingArea.cpp:543
bool HasPanelDrawer() const
Definition SDockingArea.cpp:632
TSharedPtr< UE::Slate::Private::SPanelDrawerArea > GetPanelDrawerArea() const
Definition SDockingArea.cpp:815
SLATE_API void AddSidebarTabsFromRestoredLayout(const FSidebarTabLists &SidebarTabs)
Definition SDockingArea.cpp:530
SLATE_API bool RemoveTabFromSidebar(TSharedRef< SDockTab > Tab)
Definition SDockingArea.cpp:520
TSharedPtr< SDockTab > GetPanelDrawerHostedTab() const
Definition SDockingArea.cpp:666
virtual SLATE_API FReply OnUserAttemptingDock(SDockingNode::RelativeDirection Direction, const FDragDropEvent &DragDropEvent) override
Definition SDockingArea.cpp:213
bool RemoveHiddenInactivePanelDrawerTab(const TSharedPtr< SDockTab > &TabToRemove)
Definition SDockingArea.cpp:820
bool HostTabIntoPanelDrawer(const TSharedRef< SDockTab > &InTab)
Definition SDockingArea.cpp:552
bool RestorePanelDrawerArea()
Definition SDockingArea.cpp:725
virtual SLATE_API TSharedPtr< FTabManager::FLayoutNode > GatherPersistentLayout() const override
Definition SDockingArea.cpp:344
bool CanHaveSidebar() const
Definition SDockingArea.h:139
SLATE_API ESidebarLocation AddTabToSidebar(TSharedRef< SDockTab > TabToAdd)
Definition SDockingArea.cpp:451
SLATE_API void ShowCross()
Definition SDockingArea.cpp:268
virtual Type GetNodeType() const override
Definition SDockingArea.h:58
ECleanupRetVal
Definition SDockingNode.h:129
RelativeDirection
Definition SDockingNode.h:38
Type
Definition SDockingNode.h:22
@ DockArea
Definition SDockingNode.h:31
ELayoutModification
Definition SDockingNode.h:77
Definition SDockingSplitter.h:14
Definition SOverlay.h:50
Definition STabSidebar.h:25
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition Visibility.h:12
static SLATECORE_API const EVisibility SelfHitTestInvisible
Definition Visibility.h:26
Definition Geometry.h:40
Definition SDockingArea.h:20
TArray< TSharedRef< SDockTab > > RightSidebarTabs
Definition SDockingArea.h:22
TArray< TSharedRef< SDockTab > > LeftSidebarTabs
Definition SDockingArea.h:21
Definition TabManager.h:73