UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TabManager.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 "SlateFwd.h"
7#include "Containers/Ticker.h"
9#include "Misc/Attribute.h"
10#include "Textures/SlateIcon.h"
11#include "Widgets/SWindow.h"
14#include "Templates/Function.h"
15
16class FJsonObject;
17class FMenuBuilder;
19class FMultiBox;
21class SDockingArea;
23class FLayoutExtender;
24struct FTabMatcher;
25struct FSidebarTabLists;
26
28{
29 inline bool IsHomeScreenEnabled()
30 {
31 static bool bIsHomeScreenEnabled = false;
32 UE_CALL_ONCE([&]()
33 {
34 if (const IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("HomeScreen.EnableHomeScreen")))
35 {
36 ensureAlwaysMsgf(!EnumHasAnyFlags(CVar->GetFlags(), ECVF_Default), TEXT("The CVar should have already been set from commandline."));
38 }
39 });
41 }
42}
43
50
51
53{
55 Left,
57 Right,
58
60 None,
61};
62
63
64enum class ETabIdFlags : uint8
65{
66 None = 0x0, // No flags
67 SaveLayout = 0x1, // This tab should be included when saving the Slate layout
68};
69
71
72struct FTabId
73{
76 , Flags(ETabIdFlags::SaveLayout)
77 { }
78
84
90
94 , Flags(InFlags)
95 { }
96
98 bool IsTabPersistable() const
99 {
100 return InstanceId == INDEX_NONE;
101 }
102
103 bool operator==(const FTabId& Other) const
104 {
105 return TabType == Other.TabType && (InstanceId == INDEX_NONE || Other.InstanceId == INDEX_NONE || InstanceId == Other.InstanceId) ;
106 }
107
109
110 FString ToString() const
111 {
112 // This function is useful to allow saving the layout on disk.
113 // Alternative: We could save (InstanceId == INDEX_NONE) ? TabType.ToString() : FString::Printf( TEXT("%s : %d"), *(TabType.ToString()), InstanceId ), which would include the InstanceId.
114 // Problem: InstanceId depends on the Editor/Slate runtime session rather than the layout itself. I.e., this would lead to the exact same layout being saved differently, depending
115 // on how many tabs were opened/closed before arriving to that final layout, or in the order in which those tabs were created.
116 // Conclusion: We do not want to save the InstanceId, which is session-dependent rather than layout-dependent.
117 // More detailed explanation: When the Editor is opened, InstanceId is a static value starting in 0 and increasing every time a new FTabID is created (but not decreased when one is
118 // closed). Loading/saving layouts do not reset this number either (and there is no point in doing so given that it is a runtime variable). E.g., opening and closing the same tab
119 // multiple times will lead to higher InstanceId numbers in the final layout. In addition, creating tab A and then B would lead to A::InstanceId = 0, B::InstanceId = 1. While creating
120 // B first and A latter would lead to the opposite values. Any of these examples would wrongly make 2 exact layouts look "different" if we saved the InstanceIds.
121 return TabType.ToString();
122 }
123
124 FText ToText() const
125 {
127 Args.Add( TEXT("TabType"), FText::FromName( TabType ) );
128 Args.Add( TEXT("InstanceIdNumber"), FText::AsNumber( InstanceId ) );
129
130 return (InstanceId == INDEX_NONE)
132 : FText::Format( NSLOCTEXT("TabManager", "TabIdFormat", "{TabType} : {InstanceIdNumber}"), Args );
133 }
134
135 friend uint32 GetTypeHash(const FTabId& In)
136 {
137 return GetTypeHash(In.TabType) ^ In.InstanceId;
138 }
139
142
143 private:
144 ETabIdFlags Flags;
145};
146
147
149{
150public:
152 : TabIdBeingSpawned(InTabBeingSpawenedId)
153 , OwnerWindow(InOwnerWindow)
154 {
155 }
156
158 {
159 return OwnerWindow;
160 }
161
162 const FTabId& GetTabId() const
163 {
164 return TabIdBeingSpawned;
165 }
166
167private:
168 FTabId TabIdBeingSpawned;
169 TSharedPtr<SWindow> OwnerWindow;
170};
171
172
183
184struct FMinorTabConfig
185{
186public:
188 {
189 }
190
192 : TabId(InTabID)
193 {
194 }
195
196 FName TabId;
197
198 FText TabLabel;
199
201
202 FSlateIcon TabIcon;
203
204 FOnSpawnTab OnSpawnTab;
205
206 FCanSpawnTab CanSpawnTab;
207
208 FOnFindTabToReuse OnFindTabToReuse;
209
211};
212
215{
216 enum Type
217 {
218 Enabled, // Display this spawner in menus
219 Disabled, // Display this spawner in menus, but make it disabled
220 Hidden, // Do not display this spawner in menus, it will be invoked manually
221 };
222}
223
226{
227 Disabled, // Default behavior - This tab will show up in read only modes but the contents will be disabled
228 Hidden, // This tab will not show up in read only modes
229 Custom // This tab will show up in read only modes and the tab owner will decide how it behaves (FTabManager::OnReadOnlyStateChanged to keep track of read only state)
230};
231
233
235{
238 , TabType(InTabType)
239 , OnSpawnTab(InSpawnTabMethod)
240 , CanSpawnTab(InCanSpawnTab)
241 , OnFindTabToReuse()
242 , MenuType(ETabSpawnerMenuType::Enabled)
243 , bAutoGenerateMenuEntry(true)
244 , bCanSidebarTab(true)
245 , bHiddenTabName(false)
246 , SpawnedTabPtr()
247 , ReadOnlyBehavior(ETabReadOnlyBehavior::Disabled)
248 {
249 // Special treatment for the HomeScreen tab to not have its name displayed and to be locked, this is currently intended to not be a public feature
250 if (InTabType == FName(TEXT("HomeScreen")))
251 {
252 bHiddenTabName = true;
253 bIsLocked = true;
254 }
255
256 // Special treatment for the LevelEditor tab to be locked, this is currently intended to not be a public feature
257 if (InTabType == FName(TEXT("LevelEditor")))
258 {
259 bIsLocked = true;
260 }
261 }
262
264 {
265 ReadOnlyBehavior = InReadOnlyBehavior;
266 return *this;
267 }
268
270 {
271 Icon = InIcon;
272 return *this;
273 }
274
280
286
292
298
300 {
301 InGroup->AddItem(SharedThis(this));
302 return *this;
303 }
304
306 {
307 OnFindTabToReuse = InReuseTabMethod;
308 return *this;
309 }
310
312 {
313 MenuType = InMenuType;
314 return *this;
315 }
316
318 {
319 bAutoGenerateMenuEntry = bInAutoGenerateMenuEntry;
320 return *this;
321 }
322
324 {
325 bCanSidebarTab = bInCanSidebarTab;
326 return *this;
327 }
328
329 bool CanSidebarTab() const
330 {
331 return bCanSidebarTab;
332 }
333
335 {
336 return bIsLocked;
337 }
338
339 bool IsTabNameHidden() const
340 {
341 return bHiddenTabName;
342 }
343
345 {
346 return SharedThis(this);
347 }
348
349 const FName GetTabType() const
350 {
351 return TabType;
352 };
353
354 const bool IsHidden() const
355 {
356 return MenuType.Get() == ETabSpawnerMenuType::Hidden;
357 }
358
359private:
360 FName TabType;
361 FOnSpawnTab OnSpawnTab;
362 FCanSpawnTab CanSpawnTab;
364 FOnFindTabToReuse OnFindTabToReuse;
368 bool bAutoGenerateMenuEntry;
370 bool bCanSidebarTab;
372 bool bHiddenTabName;
374 TOptional<bool> bIsLocked;
375
376 TWeakPtr<SDockTab> SpawnedTabPtr;
377
379 ETabReadOnlyBehavior ReadOnlyBehavior;
380
381 FORCENOINLINE bool IsSoleTabInstanceSpawned() const
382 {
383 // Items that allow multiple instances need a custom way to find and reuse tabs.
384 return SpawnedTabPtr.IsValid();
385 }
386
387 friend class FTabManager;
388};
389
390
391namespace ETabState
392{
393 enum Type
394 {
395 OpenedTab = 0x1 << 0,
396 ClosedTab = 0x1 << 1,
397 SidebarTab = 0x1 << 2,
398
402 InvalidTab = 0x1 << 3
403 };
404}
405
407{
413 Never,
427};
428
429
430class FTabManager : public TSharedFromThis<FTabManager>
431{
432 friend class FGlobalTabmanager;
433 public:
434
435 class FStack;
436 class FSplitter;
437 class FArea;
438 class FLayout;
439
441
442 class FLayoutNode : public TSharedFromThis<FLayoutNode>
443 {
444 friend class FTabManager;
445
446 public:
447
448 virtual ~FLayoutNode() { }
449
451
453
455
456 float GetSizeCoefficient() const { return SizeCoefficient; }
457
458 protected:
460 : SizeCoefficient(1.0f)
461 {
462 }
463
465 };
466
503
504 class FStack : public FLayoutNode
505 {
506 friend class FTabManager;
507 friend class FLayout;
508 friend class SDockingTabStack;
509
510 public:
511 TSharedRef<FStack> AddTab(const FName TabType, ETabState::Type InTabState)
512 {
513 check(InTabState != ETabState::SidebarTab);
514 Tabs.Add(FTab( FTabId(TabType), InTabState));
515 return SharedThis(this);
516 }
517
518 TSharedRef<FStack> AddTab(const FTabId TabId, ETabState::Type InTabState)
519 {
520 check(InTabState != ETabState::SidebarTab);
521
522 Tabs.Add(FTab(TabId, InTabState));
523
524 return SharedThis(this);
525 }
526
527 TSharedRef<FStack> AddTab(const FName TabType, ETabState::Type InTabState, ESidebarLocation InSidebarLocation, float SidebarSizeCoefficient, bool bPinnedInSidebar=false)
528 {
529 check(InTabState != ETabState::SidebarTab || InSidebarLocation != ESidebarLocation::None);
530 Tabs.Add(FTab(FTabId(TabType), InTabState, InSidebarLocation, SidebarSizeCoefficient, bPinnedInSidebar));
531 return SharedThis(this);
532 }
533
534 TSharedRef<FStack> AddTab(const FTabId TabId, ETabState::Type InTabState, ESidebarLocation InSidebarLocation, float SidebarSizeCoefficient, bool bPinnedInSidebar=false)
535 {
536 check(InTabState != ETabState::SidebarTab || InSidebarLocation != ESidebarLocation::None);
537
538 Tabs.Add(FTab(TabId, InTabState, InSidebarLocation, SidebarSizeCoefficient, bPinnedInSidebar));
539
540 return SharedThis(this);
541 }
542
544 {
545 Tabs.Add(Tab);
546 return SharedThis(this);
547 }
548
554
556 {
558 return SharedThis(this);
559 }
560
562 {
563 ForegroundTabId = TabId;
564 return SharedThis(this);
565 }
566
567 virtual TSharedPtr<FStack> AsStack() override
568 {
569 return SharedThis(this);
570 }
571
572 virtual ~FStack()
573 {
574 }
575
581
583 {
584 return ExtensionId;
585 }
586
588 {
589 return Tabs;
590 }
591
592 protected:
593
595 : Tabs()
598 {
599 }
600
605 };
606
607
608 class FSplitter : public FLayoutNode
609 {
610 friend class FTabManager;
611 friend class FLayoutExtender;
612
613 public:
614
620
628
636
637
643
649
651 {
652 return SharedThis(this);
653 }
654
656
657 virtual ~FSplitter()
658 {
659 }
660
665
666 protected:
671
674 };
675
677 {
680 };
681
687
688 class FArea : public FSplitter
689 {
690 friend class FTabManager;
691
692 public:
705
711
713 {
714 check(Index >= 0);
715 ChildNodes.Insert(InNode, FMath::Min(Index, ChildNodes.Num()));
716 return SharedThis(this);
717 }
718
724
726 {
729 bIsMaximized = IsMaximized;
730 return SharedThis(this);
731 }
732
738
740 {
741 return ExtensionId;
742 }
743
744 virtual TSharedPtr<FArea> AsArea() override
745 {
746 return SharedThis(this);
747 }
748
749 virtual ~FArea()
750 {
751 }
752
753 UE_EXPERIMENTAL(5.7, "The panel drawer is still in development and might be removed. The api, implementation details and its form may change in near releases.")
759
760 UE_EXPERIMENTAL(5.7, "The panel drawer is still in development and might be removed. The api, implementation details and its form may change in near releases.")
766
767 UE_EXPERIMENTAL(5.7, "The panel drawer is still in development and might be removed. The api, implementation details and its form may change in near releases.")
772
780
781 protected:
782 FArea( const float InWidth, const float InHeight )
787 {
788 }
789
797 };
798
799
846
847
848 friend class FPrivateApi;
882
884
885 public:
887 {
888 public:
891 };
892
894 {
895 public:
897 };
898
900 {
901 public:
903
905
906 private:
907 FName SearchForTabId;
908 };
909
911 {
912 public:
914
916 private:
917 FName FallbackTabId;
918 };
919
920 public:
921 static TSharedRef<FLayout> NewLayout( const FName LayoutName )
922 {
923 return MakeShareable( new FLayout(LayoutName) );
924 }
925
927 {
929 Area->WindowPlacement = FArea::Placement_NoWindow;
930 return Area;
931 }
932
933 static TSharedRef<FArea> NewArea( const float Width, const float Height )
934 {
935 return MakeShareable( new FArea( Width, Height ) );
936 }
937
938 static TSharedRef<FArea> NewArea( const FVector2D& WindowSize )
939 {
940 return MakeShareable( new FArea( UE_REAL_TO_FLOAT(WindowSize.X), UE_REAL_TO_FLOAT(WindowSize.Y) ) );
941 }
942
944 {
945 return MakeShareable( new FStack() );
946 }
947
949 {
950 return MakeShareable( new FSplitter() );
951 }
952
953 static void RegisterDefaultTabWindowSize(const FTabId& TabName, const FVector2D DefaultSize)
954 {
956 }
957
958 static void UnregisterDefaultTabWindowSize(const FTabId& TabName)
959 {
960 DefaultTabWindowSizeMap.Remove(TabName);
961 }
962
964
967
970
973
976
979
988 SLATE_API FTabSpawnerEntry& RegisterTabSpawner(const FName TabId, const FOnSpawnTab& OnSpawnTab, const FCanSpawnTab& CanSpawnTab = FCanSpawnTab());
989
995 SLATE_API bool UnregisterTabSpawner( const FName TabId );
996
1001
1004
1005 UE_EXPERIMENTAL(5.7, "The panel drawer is still in development and might be removed. The api, implementation details and its form may change in near releases.")
1007
1009
1011
1013
1015
1017
1019 {
1020 enum Type
1021 {
1023 RequireClosedTab
1025 };
1026
1029
1032
1035
1041
1049 SLATE_API virtual TSharedPtr<SDockTab> TryInvokeTab(const FTabId& TabId, bool bInvokeAsInactive = false);
1050
1058
1064 UE_EXPERIMENTAL(5.7, "The panel drawer is still in development and might be removed. The api, implementation details and its form may change in near releases.")
1066
1075
1077
1080
1083
1090
1095 SLATE_API void UpdateMainMenu(TSharedPtr<SDockTab> ForTab, const bool bForce);
1096
1101
1103
1105 SLATE_API bool IsReadOnly();
1106
1108
1110
1111 /* Prevent or allow all tabs to be drag */
1113
1114 /* Return true if we can do drag operation */
1116
1119
1121 SLATE_API bool IsTabAllowedInSidebar(const FTabId TabId) const;
1122
1125
1130
1133
1136
1139
1142
1144 SLATE_API bool HasTabSpawner(FName TabId) const;
1145
1148
1151
1153
1156
1159
1162
1163 UE_EXPERIMENTAL(5.7, "The panel drawer is still in development and might be removed. The api, implementation details and its form may change in near releases.")
1164 SLATE_API bool HasPanelDrawer(const TSharedPtr<SWindow>& ParentWindow) const;
1165
1167 SLATE_API bool IsPanelDrawerOpen(const TSharedPtr<SWindow>& ParentWindow) const;
1168
1170 SLATE_API void ClosePanelDrawer(const TSharedPtr<SWindow>& ParentWindow);
1171
1174
1179
1182
1183 protected:
1184 SLATE_API void InvokeTabForMenu( FName TabId );
1185
1186 protected:
1187
1190
1192
1194
1196
1198
1201
1203
1205
1210
1212
1216
1219
1234
1239
1240 SLATE_API bool IsValidTabForSpawning( const FTab& SomeTab ) const;
1241 SLATE_API bool IsAllowedTab(const FTabId& TabId) const;
1242 SLATE_API bool IsAllowedTabType(const FName TabType) const;
1243
1244 SLATE_API TSharedPtr<SDockTab> SpawnTab(const FTabId& TabId, const TSharedPtr<SWindow>& ParentWindow, const bool bCanOutputBeNullptr = false);
1245
1248
1249 static bool HasAnyMatchingTabs( const TSharedRef<FTabManager::FLayoutNode>& SomeNode, const TFunctionRef<bool(const FTab&)>& Matcher );
1250
1251 public:
1257
1264
1265protected:
1267
1274 SLATE_API void SetTabsTo(const TSharedRef<FTabManager::FLayoutNode>& SomeNode, const ETabState::Type NewTabState, const ETabState::Type OriginalTabState) const;
1275
1284 SLATE_API virtual void OnTabManagerClosing();
1286 SLATE_API virtual bool CanCloseManager( const TSet< TSharedRef<SDockTab> >& TabsToIgnore = TSet< TSharedRef<SDockTab> >() );
1287
1289
1294
1296 SLATE_API virtual void UpdateStats();
1297
1299 virtual void FinishRestore() {};
1300
1301
1302 /*
1303 * Search the docking area to see if we have one that is part of the window.
1304 */
1306
1307 /*
1308 * Search the docking area to see if we have one that is part of the window. With some customized Logic for the panel drawer.
1309 */
1311
1312 private:
1314 SLATE_API void GetRecordableStats( int32& OutTabCount, TArray<TSharedPtr<SWindow>>& OutUniqueParentWindows ) const;
1315
1317 void FixLayoutLoadingPrimaryArea(const TSharedRef<FArea>& InPrimaryArea);
1318
1319 TSharedPtr<SDockingTabStack> AttemptToOpenTab( const FTabId& ClosedTabId, bool bForceOpenWindowIfNeeded = false );
1320
1327 bool HasAnyTabWithTabId( const TSharedRef<FTabManager::FLayoutNode>& SomeNode, const FName& InTabTypeToMatch ) const;
1328
1334 TSharedRef<FArea> GetAreaForTabId(const FTabId& TabId);
1335
1337 FText GetTabLabelBasedOnSpawner(const TSharedPtr<FTabSpawnerEntry>& InSpawnerEntry) const;
1338
1340 bool InvokeTab_CanInvokeTab(const FTabId& TabId) const;
1341 TSharedPtr<SDockTab> InvokeTab_FindOrReuseExistingTab(const FTabId& TabId) const;
1342 void InvokeTab_DrawAttentionToTab(const TSharedPtr<SDockTab>& InvokedTab);
1343
1344 TSharedPtr<SDockTab> InvokeTabInPanelDrawer(const FTabId& TabId, bool bToggleIfActiveInDrawer, const TSharedPtr<SWindow>& ParentWindow, bool bForceInDrawerPanel);
1345
1347 bool CanInvokeInPanelDrawer(const FTabId& TabId, const TSharedPtr<SDockingArea>& DockingArea, TSharedPtr<SDockTab>& OutTab, bool bForceInDrawerPanel);
1348
1351
1353 void OnPanelDrawerStateChanged() const;
1354
1356 bool RemoveFromHiddenPanelDrawerTabs(TSharedPtr<SDockTab> ExistingTab);
1357
1359 void HandleClosingAreaPanelDrawerData(const TSharedPtr<SDockingArea>& ClosingDockingArea);
1360
1361 protected:
1364
1366
1378
1381
1384
1388
1391
1394
1397
1404
1407
1410
1413
1416
1419
1421 bool bEnforceMainTab = false;
1422
1425
1426 /* Prevent or allow Drag operation. */
1428
1431
1434
1437
1440
1443
1445 bool bReadOnly = false;
1446
1449
1454
1457};
1458
1459
1460
1461class FProxyTabmanager;
1462
1463
1465{
1466public:
1467
1469
1471 SLATE_API FDelegateHandle OnActiveTabChanged_Subscribe( const FOnActiveTabChanged::FDelegate& InDelegate );
1472
1475
1477 SLATE_API FDelegateHandle OnTabForegrounded_Subscribe(const FOnActiveTabChanged::FDelegate& InDelegate);
1478
1481
1484
1487
1490
1499 SLATE_API FTabSpawnerEntry& RegisterNomadTabSpawner( const FName TabId, const FOnSpawnTab& OnSpawnTab, const FCanSpawnTab& CanSpawnTab = FCanSpawnTab());
1500
1501 SLATE_API void UnregisterNomadTabSpawner( const FName TabId );
1502
1503 SLATE_API void SetApplicationTitle( const FText& AppTitle );
1504
1505 SLATE_API const FText& GetApplicationTitle() const;
1506
1508 {
1509 return MakeShareable( new FGlobalTabmanager() );
1510 }
1511
1512 SLATE_API virtual bool CanCloseManager( const TSet< TSharedRef<SDockTab> >& TabsToIgnore = TSet< TSharedRef<SDockTab> >()) override;
1513
1516
1522
1527
1530
1532
1538 SLATE_API void UpdateMainMenu(const TSharedRef<SDockTab>& ForTab, bool const bForce);
1539
1542
1545
1548
1551
1554
1557
1559 int32 GetMaximumTabCount() const { return AllTabsMaxCount; }
1560
1562 int32 GetMaximumWindowCount() const { return AllAreasWindowMaxCount; }
1563
1566
1569
1571
1574
1577
1581
1582protected:
1585 SLATE_API virtual void OnTabClosing( const TSharedRef<SDockTab>& TabBeingClosed ) override;
1586 SLATE_API virtual void UpdateStats() override;
1587
1589
1590 SLATE_API virtual void FinishRestore() override;
1591
1592public:
1593 SLATE_API virtual void OnTabManagerClosing() override;
1594
1602
1608
1609private:
1610
1613
1615 bool bShouldUseMiddleEllipsisForDockTabLabel = false;
1616
1618 struct FSubTabManager
1619 {
1621 : MajorTab( InMajorTab )
1622 , TabManager( InTabManager )
1623 {
1624 }
1625
1627 TWeakPtr<FTabManager> TabManager;
1628 };
1629
1630 struct FindByTab
1631 {
1632 FindByTab(const TSharedRef<SDockTab>& InTabToFind)
1633 : TabToFind(InTabToFind)
1634 {
1635 }
1636
1637 bool operator()(const FGlobalTabmanager::FSubTabManager& TabManagerPair) const
1638 {
1639 return TabManagerPair.TabManager.IsValid() && TabManagerPair.MajorTab.IsValid() && TabManagerPair.MajorTab.Pin() == TabToFind;
1640 }
1641
1642 const TSharedRef<SDockTab>& TabToFind;
1643 };
1644
1645 struct FindByManager
1646 {
1647 FindByManager(const TSharedRef<FTabManager>& InManagerToFind)
1648 : ManagerToFind(InManagerToFind)
1649 {
1650 }
1651
1652 bool operator()(const FGlobalTabmanager::FSubTabManager& TabManagerPair) const
1653 {
1654 return TabManagerPair.TabManager.IsValid() && TabManagerPair.MajorTab.IsValid() && TabManagerPair.TabManager.Pin() == ManagerToFind;
1655 }
1656
1657 const TSharedRef<FTabManager>& ManagerToFind;
1658 };
1659
1662 , AllTabsMaxCount(0)
1663 , AllAreasWindowMaxCount(0)
1664 , bCanSavePersistentLayouts(true)
1665 {
1666 }
1667
1668 TArray< FSubTabManager > SubTabManagers;
1669
1671 TWeakPtr<SDockTab> ActiveTabPtr;
1672
1673 FOnActiveTabChanged OnActiveTabChanged;
1674
1675 FOnActiveTabChanged TabForegrounded;
1676
1677 FText AppTitle;
1678
1680 TWeakPtr<SWindow> RootWindowPtr;
1681
1683 TMap<FName, FName> LegacyTabTypeRedirectionMap;
1684
1686 int32 AllTabsMaxCount;
1687
1689 int32 AllAreasWindowMaxCount;
1690
1692 bool bCanSavePersistentLayouts;
1693
1695 TSharedPtr<FProxyTabmanager> ProxyTabManager;
1696
1701 TSharedPtr<FTabManager::FLayout> InitialLayoutSP;
1702};
1703
1704//#HACK VREDITOR - Had to introduce the proxy tab manager to steal asset tabs.
1705
1706DECLARE_MULTICAST_DELEGATE_TwoParams(FIsTabSupportedEvent, FTabId /* TabId */, bool& /* bOutIsSupported */ );
1708
1709
1711{
1712public:
1713
1720
1721 SLATE_API virtual void OpenUnmanagedTab(FName PlaceholderId, const FSearchPreference& SearchPreference, const TSharedRef<SDockTab>& UnmanagedTab) override;
1722 SLATE_API virtual void DrawAttention(const TSharedRef<SDockTab>& TabToHighlight) override;
1723
1724 SLATE_API bool IsTabSupported( const FTabId TabId ) const;
1726
1727public:
1731
1732private:
1733 TWeakPtr<SWindow> ParentWindow;
1734};
#define FORCENOINLINE
Definition AndroidPlatform.h:142
#define ensureAlwaysMsgf(InExpression, InFormat,...)
Definition AssertionMacros.h:467
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_CALL_ONCE(Func,...)
Definition CoreMiscDefines.h:186
#define PRAGMA_DISABLE_EXPERIMENTAL_WARNINGS
Definition CoreMiscDefines.h:370
#define PRAGMA_ENABLE_EXPERIMENTAL_WARNINGS
Definition CoreMiscDefines.h:371
#define UE_EXPERIMENTAL(Version, Message)
Definition CoreMiscDefines.h:369
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
SharedPointerInternals::TRawPtrProxy< ObjectType > MakeShareable(ObjectType *InObject)
Definition SharedPointer.h:1947
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_DELEGATE_RetVal_OneParam(ReturnValueType, DelegateName, Param1Type)
Definition DelegateCombinations.h:54
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
@ ECVF_Default
Definition IConsoleManager.h:61
#define NSLOCTEXT(InNamespace, InKey, InTextLiteral)
Definition Internationalization.h:300
#define UE_REAL_TO_FLOAT(argument)
Definition LargeWorldCoordinates.h:30
const bool
Definition NetworkReplayStreaming.h:178
@ MajorTab
Definition SDockTab.h:29
EOrientation
Definition SlateEnums.h:261
ETabIdFlags
Definition TabManager.h:65
ETabReadOnlyBehavior
Definition TabManager.h:226
ESidebarLocation
Definition TabManager.h:53
EOutputCanBeNullptr
Definition TabManager.h:407
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IDelegateInstance.h:14
Definition TabManager.h:1465
SLATE_API void SetInitialLayoutSP(TSharedPtr< FTabManager::FLayout > InLayout)
Definition TabManager.cpp:2848
SLATE_API TSharedPtr< SWindow > GetRootWindow() const
Definition TabManager.cpp:3504
SLATE_API void DrawAttentionToTabManager(const TSharedRef< FTabManager > &ChildManager)
Definition TabManager.cpp:3434
SLATE_API void UpdateMainMenu(const TSharedRef< SDockTab > &ForTab, bool const bForce)
Definition TabManager.cpp:3471
FOnOverrideDockableAreaRestore OnOverrideDockableAreaRestore_Handler
Definition TabManager.h:1580
int32 GetMaximumWindowCount() const
Definition TabManager.h:1562
SLATE_API TSharedPtr< SDockTab > GetMajorTabForTabManager(const TSharedRef< FTabManager > &ChildManager)
Definition TabManager.cpp:3387
SLATE_API void SetCanSavePersistentLayouts(bool bInCanSavePersistentLayouts)
Definition TabManager.cpp:3731
virtual SLATE_API void OnTabRelocated(const TSharedRef< SDockTab > &RelocatedTab, const TSharedPtr< SWindow > &NewOwnerWindow) override
Definition TabManager.cpp:3587
int32 GetMaximumTabCount() const
Definition TabManager.h:1559
static SLATE_API const TSharedRef< FGlobalTabmanager > & Get()
Definition TabManager.cpp:3256
SLATE_API TSharedPtr< FTabManager::FLayout > GetInitialLayoutSP()
Definition TabManager.cpp:2853
virtual SLATE_API void FinishRestore() override
Definition TabManager.cpp:3705
SLATE_API FName GetTabTypeForPotentiallyLegacyTab(FName InTabType) const
Definition TabManager.cpp:3522
virtual SLATE_API void OnTabManagerClosing() override
Definition TabManager.cpp:3655
SLATE_API bool IsLegacyTabType(FName InTabType) const
Definition TabManager.cpp:3517
static TSharedRef< FGlobalTabmanager > New()
Definition TabManager.h:1507
virtual SLATE_API void OnTabClosing(const TSharedRef< SDockTab > &TabBeingClosed) override
Definition TabManager.cpp:3641
SLATE_API const FText & GetApplicationTitle() const
Definition TabManager.cpp:3366
SLATE_API void UnregisterNomadTabSpawner(const FName TabId)
Definition TabManager.cpp:3344
SLATE_API FTabSpawnerEntry & RegisterNomadTabSpawner(const FName TabId, const FOnSpawnTab &OnSpawnTab, const FCanSpawnTab &CanSpawnTab=FCanSpawnTab())
Definition TabManager.cpp:3325
virtual SLATE_API void UpdateStats() override
Definition TabManager.cpp:3668
virtual SLATE_API void OnTabForegrounded(const TSharedPtr< SDockTab > &NewForegroundTab, const TSharedPtr< SDockTab > &BackgroundedTab) override
Definition TabManager.cpp:3528
SLATE_API TSharedPtr< SDockTab > GetActiveTab() const
Definition TabManager.cpp:3295
SLATE_API void SetActiveTab(const TSharedPtr< SDockTab > &NewActiveTab)
Definition TabManager.cpp:3307
SLATE_API void SetApplicationTitle(const FText &AppTitle)
Definition TabManager.cpp:3349
SLATE_API TSharedPtr< FTabManager > GetTabManagerForMajorTab(const TSharedPtr< SDockTab > DockTab) const
Definition TabManager.cpp:3398
SLATE_API bool CanSetAsActiveTab(const TSharedPtr< SDockTab > &Tab)
Definition TabManager.cpp:3300
SLATE_API FDelegateHandle OnTabForegrounded_Subscribe(const FOnActiveTabChanged::FDelegate &InDelegate)
Definition TabManager.cpp:3285
SLATE_API void OnActiveTabChanged_Unsubscribe(FDelegateHandle Handle)
Definition TabManager.cpp:3280
SLATE_API bool GetShouldUseMiddleEllipsisForDockTabLabel() const
Definition TabManager.cpp:3265
virtual SLATE_API void OpenUnmanagedTab(FName PlaceholderId, const FSearchPreference &SearchPreference, const TSharedRef< SDockTab > &UnmanagedTab) override
Definition TabManager.cpp:3693
virtual SLATE_API bool CanCloseManager(const TSet< TSharedRef< SDockTab > > &TabsToIgnore=TSet< TSharedRef< SDockTab > >()) override
Definition TabManager.cpp:3371
SLATE_API void SetShouldUseMiddleEllipsisForDockTabLabel(const bool bInShouldUseMiddleEllipsis)
Definition TabManager.cpp:3270
SLATE_API void SetProxyTabManager(TSharedPtr< FProxyTabmanager > InProxyTabManager)
Definition TabManager.cpp:3741
SLATE_API TSharedRef< FTabManager > NewTabManager(const TSharedRef< SDockTab > &InOwnerTab)
Definition TabManager.cpp:3452
SLATE_API void SetRootWindow(const TSharedRef< SWindow > InRootWindow)
Definition TabManager.cpp:3499
SLATE_API void AddLegacyTabType(FName InLegacyTabType, FName InNewTabType)
Definition TabManager.cpp:3509
SLATE_API void SaveAllVisualState()
Definition TabManager.cpp:3485
SLATE_API TSharedPtr< FTabManager > GetSubTabManagerForWindow(const TSharedRef< SWindow > &InWindow) const
Definition TabManager.cpp:3409
DECLARE_DELEGATE(FOnOverrideDockableAreaRestore)
SLATE_API bool CanSavePersistentLayouts() const
Definition TabManager.cpp:3736
SLATE_API FDelegateHandle OnActiveTabChanged_Subscribe(const FOnActiveTabChanged::FDelegate &InDelegate)
Definition TabManager.cpp:3275
SLATE_API void OnTabForegrounded_Unsubscribe(FDelegateHandle Handle)
Definition TabManager.cpp:3290
Definition JsonObject.h:23
Definition LayoutExtender.h:28
Definition MultiBoxBuilder.h:310
Definition MultiBox.h:332
Definition NamePermissionList.h:22
Definition NameTypes.h:617
CORE_API FString ToString() const
Definition UnrealNames.cpp:3537
Definition TabManager.h:1711
FOnTabEvent OnAttentionDrawnToTab
Definition TabManager.h:1730
SLATE_API bool IsTabSupported(const FTabId TabId) const
Definition TabManager.cpp:3746
SLATE_API void SetParentWindow(TSharedRef< SWindow > InParentWindow)
Definition TabManager.cpp:3799
virtual SLATE_API void OpenUnmanagedTab(FName PlaceholderId, const FSearchPreference &SearchPreference, const TSharedRef< SDockTab > &UnmanagedTab) override
Definition TabManager.cpp:3757
FProxyTabmanager(TSharedRef< SWindow > InParentWindow)
Definition TabManager.h:1714
FOnTabEvent OnTabOpened
Definition TabManager.h:1729
FIsTabSupportedEvent OnIsTabSupported
Definition TabManager.h:1728
virtual SLATE_API void DrawAttention(const TSharedRef< SDockTab > &TabToHighlight) override
Definition TabManager.cpp:3791
Definition TabManager.h:149
const TSharedPtr< SWindow > & GetOwnerWindow() const
Definition TabManager.h:157
const FTabId & GetTabId() const
Definition TabManager.h:162
FSpawnTabArgs(const TSharedPtr< SWindow > &InOwnerWindow, const FTabId &InTabBeingSpawenedId)
Definition TabManager.h:151
Definition TabManager.h:689
TSharedRef< FArea > AddPanelDrawerInactiveTab(FPanelDrawerTab &&InPanelDrawerTab)
Definition TabManager.h:761
bool bIsMaximized
Definition TabManager.h:793
TSharedRef< FArea > SetWindow(FVector2D InPosition, bool IsMaximized)
Definition TabManager.h:725
TSharedRef< FArea > SetPanelDrawerActiveTab(FPanelDrawerTab &&InPanelDrawerTab)
Definition TabManager.h:754
FPanelDrawerTab ActivePanelDrawerTab
Definition TabManager.h:795
TSharedRef< FArea > Split(TSharedRef< FLayoutNode > InNode)
Definition TabManager.h:706
FVector2D UnscaledWindowPosition
Definition TabManager.h:791
virtual TSharedPtr< FArea > AsArea() override
Definition TabManager.h:744
virtual ~FArea()
Definition TabManager.h:749
FVector2D UnscaledWindowSize
Definition TabManager.h:792
bool DefinesPositionallySpecifiedFloatingWindow() const
Definition TabManager.h:776
EWindowPlacement WindowPlacement
Definition TabManager.h:790
FName ExtensionId
Definition TabManager.h:794
FArea(const float InWidth, const float InHeight)
Definition TabManager.h:782
const TArray< FPanelDrawerTab > & GetPanelDrawerInactiveTabs() const
Definition TabManager.h:768
TSharedRef< FArea > SetOrientation(const EOrientation InOrientation)
Definition TabManager.h:719
FName GetExtensionId() const
Definition TabManager.h:739
TArray< FPanelDrawerTab > InactivePanelDrawerTabs
Definition TabManager.h:796
TSharedRef< FArea > SetExtensionId(FName InExtensionId)
Definition TabManager.h:733
TSharedRef< FArea > SplitAt(int32 Index, TSharedRef< FLayoutNode > InNode)
Definition TabManager.h:712
EWindowPlacement
Definition TabManager.h:695
@ Placement_NoWindow
Definition TabManager.h:697
@ Placement_Automatic
Definition TabManager.h:700
@ Placement_Specified
Definition TabManager.h:703
Definition TabManager.h:911
virtual SLATE_API TSharedPtr< SDockTab > Search(const FTabManager &Manager, FName PlaceholderId, const TSharedRef< SDockTab > &UnmanagedTab) const override
Definition TabManager.cpp:175
Definition TabManager.h:443
float GetSizeCoefficient() const
Definition TabManager.h:456
virtual SLATE_API TSharedPtr< FSplitter > AsSplitter()
Definition TabManager.cpp:972
FLayoutNode()
Definition TabManager.h:459
virtual SLATE_API TSharedPtr< FArea > AsArea()
Definition TabManager.cpp:977
virtual ~FLayoutNode()
Definition TabManager.h:448
float SizeCoefficient
Definition TabManager.h:464
virtual SLATE_API TSharedPtr< FStack > AsStack()
Definition TabManager.cpp:967
Definition TabManager.h:801
TWeakPtr< FArea > PrimaryArea
Definition TabManager.h:841
SLATE_API TSharedRef< FJsonObject > ToJson() const
Definition TabManager.cpp:424
TArray< TSharedRef< FArea > > Areas
Definition TabManager.h:842
static SLATE_API TSharedRef< FLayoutNode > NewFromString_Helper(TSharedPtr< FJsonObject > JsonObject)
Definition TabManager.cpp:193
TConstArrayView< TSharedRef< FArea > > GetAreas() const
Definition TabManager.h:819
FLayout(const FName &InLayoutName)
Definition TabManager.h:837
const TWeakPtr< FArea > & GetPrimaryArea() const
Definition TabManager.h:814
SLATE_API FString ToString() const
Definition TabManager.cpp:446
static SLATE_API TSharedPtr< FTabManager::FLayout > NewFromJson(const TSharedPtr< FJsonObject > &LayoutAsJson)
Definition TabManager.cpp:394
SLATE_API FName GetLayoutName() const
Definition TabManager.cpp:419
SLATE_API void ProcessExtensions(const FLayoutExtender &Extender)
Definition TabManager.cpp:578
static SLATE_API const TSharedRef< FTabManager::FLayout > NullLayout
Definition TabManager.h:806
TSharedRef< FLayout > AddArea(const TSharedRef< FArea > &InArea)
Definition TabManager.h:808
static SLATE_API TSharedPtr< FTabManager::FLayout > NewFromString(const FString &LayoutAsText)
Definition TabManager.cpp:381
FName LayoutName
Definition TabManager.h:844
static SLATE_API TSharedRef< class FJsonObject > PersistToString_Helper(const TSharedRef< FLayoutNode > &NodeToPersist)
Definition TabManager.cpp:461
Definition TabManager.h:900
virtual SLATE_API TSharedPtr< SDockTab > Search(const FTabManager &Manager, FName PlaceholderId, const TSharedRef< SDockTab > &UnmanagedTab) const override
Definition TabManager.cpp:153
Definition TabManager.h:850
TSharedPtr< SWindow > GetParentWindow() const
Definition TabManager.cpp:737
void OnDockAreaClosing(const TSharedRef< SDockingArea > &DockAreaThatIsClosing)
Definition TabManager.cpp:776
void SetCanDoDeferredLayoutSave(bool bInCanDoDeferredLayoutSave)
Definition TabManager.cpp:840
bool CanTabLeaveTabWell(const TSharedRef< const SDockTab > &TabToTest) const
Definition TabManager.cpp:794
FPrivateApi(FTabManager &InTabManager)
Definition TabManager.h:852
void OnTabClosing(const TSharedRef< SDockTab > &TabBeingClosed)
Definition TabManager.cpp:771
const TArray< TWeakPtr< SDockingArea > > & GetLiveDockAreas() const
Definition TabManager.cpp:799
void OnTabManagerClosing()
Definition TabManager.cpp:789
void HideWindows()
Definition TabManager.cpp:834
void OnTabOpening(const TSharedRef< SDockTab > &TabBeingOpened)
Definition TabManager.cpp:766
void OnTabRelocated(const TSharedRef< SDockTab > &RelocatedTab, const TSharedPtr< SWindow > &NewOwnerWindow)
Definition TabManager.cpp:761
TSharedPtr< SDockingArea > GetDockingAreaForPanelDrawer(const TSharedPtr< SWindow > &InWindow) const
Definition TabManager.cpp:849
void OnDockAreaCreated(const TSharedRef< SDockingArea > &NewlyCreatedDockArea)
Definition TabManager.cpp:755
void ShowWindows()
Definition TabManager.cpp:828
void OnTabForegrounded(const TSharedPtr< SDockTab > &NewForegroundTab, const TSharedPtr< SDockTab > &BackgroundedTab)
Definition TabManager.cpp:804
Definition TabManager.h:894
virtual SLATE_API TSharedPtr< SDockTab > Search(const FTabManager &Manager, FName PlaceholderId, const TSharedRef< SDockTab > &UnmanagedTab) const override
Definition TabManager.cpp:165
Definition TabManager.h:887
virtual ~FSearchPreference()
Definition TabManager.h:890
virtual TSharedPtr< SDockTab > Search(const FTabManager &Manager, FName PlaceholderId, const TSharedRef< SDockTab > &UnmanagedTab) const =0
Definition TabManager.h:609
TSharedRef< FSplitter > Split(TSharedRef< FLayoutNode > InNode)
Definition TabManager.h:615
EOrientation GetOrientation() const
Definition TabManager.h:655
EOrientation Orientation
Definition TabManager.h:672
TConstArrayView< TSharedRef< FLayoutNode > > GetChildNodes() const
Definition TabManager.h:661
TSharedRef< FSplitter > SetSizeCoefficient(const float InSizeCoefficient)
Definition TabManager.h:638
TSharedRef< FSplitter > InsertBefore(TSharedRef< FLayoutNode > NodeToInsertBefore, TSharedRef< FLayoutNode > NodeToInsert)
Definition TabManager.h:621
TArray< TSharedRef< FLayoutNode > > ChildNodes
Definition TabManager.h:673
TSharedRef< FSplitter > InsertAfter(TSharedRef< FLayoutNode > NodeToInsertAfter, TSharedRef< FLayoutNode > NodeToInsert)
Definition TabManager.h:629
virtual TSharedPtr< FSplitter > AsSplitter() override
Definition TabManager.h:650
TSharedRef< FSplitter > SetOrientation(const EOrientation InOrientation)
Definition TabManager.h:644
virtual ~FSplitter()
Definition TabManager.h:657
FSplitter()
Definition TabManager.h:667
Definition TabManager.h:505
TConstArrayView< FTab > GetTabs() const
Definition TabManager.h:587
TSharedRef< FStack > SetHideTabWell(const bool InHideTabWell)
Definition TabManager.h:555
bool bHideTabWell
Definition TabManager.h:602
TSharedRef< FStack > AddTab(const FTabId TabId, ETabState::Type InTabState, ESidebarLocation InSidebarLocation, float SidebarSizeCoefficient, bool bPinnedInSidebar=false)
Definition TabManager.h:534
FName ExtensionId
Definition TabManager.h:604
TSharedRef< FStack > AddTab(const FName TabType, ETabState::Type InTabState)
Definition TabManager.h:511
TSharedRef< FStack > SetSizeCoefficient(const float InSizeCoefficient)
Definition TabManager.h:549
virtual TSharedPtr< FStack > AsStack() override
Definition TabManager.h:567
TSharedRef< FStack > SetForegroundTab(const FTabId &TabId)
Definition TabManager.h:561
virtual ~FStack()
Definition TabManager.h:572
TSharedRef< FStack > AddTab(const FName TabType, ETabState::Type InTabState, ESidebarLocation InSidebarLocation, float SidebarSizeCoefficient, bool bPinnedInSidebar=false)
Definition TabManager.h:527
FTabId ForegroundTabId
Definition TabManager.h:603
FName GetExtensionId() const
Definition TabManager.h:582
TArray< FTab > Tabs
Definition TabManager.h:601
TSharedRef< FStack > AddTab(const FTab &Tab)
Definition TabManager.h:543
TSharedRef< FStack > AddTab(const FTabId TabId, ETabState::Type InTabState)
Definition TabManager.h:518
TSharedRef< FStack > SetExtensionId(FName InExtensionId)
Definition TabManager.h:576
FStack()
Definition TabManager.h:594
Definition TabManager.h:431
SLATE_API bool IsReadOnly()
Definition TabManager.cpp:937
TArray< TSharedRef< FTabManager::FArea > > CollapsedDockAreas
Definition TabManager.h:1372
DECLARE_DELEGATE_OneParam(FOnPersistLayout, const TSharedRef< FLayout > &)
SLATE_API FUIAction GetUIActionForTabSpawnerMenuEntry(TSharedPtr< FTabSpawnerEntry > InTabMenuEntry)
Definition TabManager.cpp:1839
bool GetCanDoDragOperation()
Definition TabManager.h:1115
SLATE_API int32 FindTabInCollapsedAreas(const FTabMatcher &Matcher)
Definition TabManager.cpp:3081
TSharedPtr< FMultiBox > MenuMultiBox
Definition TabManager.h:1386
FTSTicker::FDelegateHandle PendingLayoutSaveHandle
Definition TabManager.h:1436
SLATE_API void AddLocalWorkspaceMenuItem(const TSharedRef< FWorkspaceItem > &CategoryItem)
Definition TabManager.cpp:957
bool AllowsWindowMenuBar() const
Definition TabManager.h:1082
FTabSpawner TabSpawner
Definition TabManager.h:1362
static TSharedRef< FTabManager > New(const TSharedPtr< SDockTab > &InOwnerTab, const TSharedRef< FTabSpawner > &InNomadTabSpawner)
Definition TabManager.h:1206
SLATE_API TSharedPtr< SDockTab > SpawnTab(const FTabId &TabId, const TSharedPtr< SWindow > &ParentWindow, const bool bCanOutputBeNullptr=false)
Definition TabManager.cpp:2388
TSharedRef< FPrivateApi > PrivateApi
Definition TabManager.h:1390
FOnReadOnlyModeChanged OnReadOnlyModeChanged
Definition TabManager.h:1448
SLATE_API TSharedPtr< SWidget > RestorePanelDrawer(const TSharedRef< SWidget > &InContent, const TSharedRef< SWindow > &ParentWindow)
Definition TabManager.cpp:1188
SLATE_API TSharedPtr< SDockTab > TryOpenTabInPanelDrawer(const FTabId &TabId, const TSharedPtr< SWindow > &ParentWindow, bool bForceInDrawerPanel=false)
Definition TabManager.cpp:2524
TWeakPtr< SWindow > LastMajorDockWindow
Definition TabManager.h:1424
SLATE_API bool HasTabSpawnerFor(FName TabId) const
SLATE_API TSharedPtr< class SDockingTabStack > FindTabInLiveAreas(const FTabMatcher &TabMatcher) const
Definition TabManager.cpp:2745
SLATE_API FTabManager::FPrivateApi & GetPrivateApi()
Definition TabManager.cpp:854
SLATE_API TSharedPtr< class SDockingNode > RestoreArea_Helper(const TSharedRef< FLayoutNode > &LayoutNode, const TSharedPtr< SWindow > &ParentWindow, const bool bEmbedTitleAreaContent, FSidebarTabLists &OutSidebarTabs, const EOutputCanBeNullptr OutputCanBeNullptr=EOutputCanBeNullptr::Never, bool bForceOpenWindowIfNeeded=false)
Definition TabManager.cpp:1958
SLATE_API TSharedPtr< SDockTab > FindExistingLiveTab(const FTabId &TabId) const
Definition TabManager.cpp:2489
SLATE_API void SetMenuMultiBox(const TSharedPtr< FMultiBox > NewMenuMutliBox, const TSharedPtr< SWidget > MenuWidget)
Definition TabManager.cpp:865
SLATE_API TSharedPtr< FTabSpawnerEntry > FindTabSpawnerFor(FName TabId)
Definition TabManager.cpp:3053
bool bCanDoDeferredLayoutSave
Definition TabManager.h:1430
SLATE_API TSharedPtr< SWidget > RestoreFrom(const TSharedRef< FLayout > &Layout, const TSharedPtr< SWindow > &ParentWindow, const bool bEmbedTitleAreaContent=false, const EOutputCanBeNullptr RestoreAreaOutputCanBeNullptr=EOutputCanBeNullptr::Never)
Definition TabManager.cpp:1119
TMap< FName, TSharedRef< FTabSpawnerEntry > > FTabSpawner
Definition TabManager.h:1204
SLATE_API void SetReadOnly(bool bInReadOnly)
Definition TabManager.cpp:928
SLATE_API bool HasValidTabs(const TSharedRef< FTabManager::FLayoutNode > &SomeNode) const
Definition TabManager.cpp:2892
static SLATE_API TSharedPtr< FTabManager::FStack > FindTabUnderNode(const FTabMatcher &Matcher, const TSharedRef< FTabManager::FLayoutNode > &NodeToSearchUnder)
Definition TabManager.cpp:3022
SLATE_API bool UnregisterTabSpawner(const FName TabId)
Definition TabManager.cpp:1109
SLATE_API TSharedRef< FNamePermissionList > & GetTabPermissionList()
Definition TabManager.cpp:2284
SLATE_API void MakeSpawnerMenuEntry(FMenuBuilder &PopulateMe, const TSharedPtr< FTabSpawnerEntry > &InSpawnerNode)
Definition TabManager.cpp:1333
SLATE_API bool CanRestoreSplitterContent(TArray< TSharedRef< class SDockingNode > > &DockingNodes, const TSharedRef< FSplitter > &SplitterNode, const TSharedPtr< SWindow > &ParentWindow, FSidebarTabLists &OutSidebarTabs, const EOutputCanBeNullptr OutputCanBeNullptr)
Definition TabManager.cpp:2227
SLATE_API void SavePersistentLayout()
Definition TabManager.cpp:1055
TWeakPtr< SDockTab > OwnerTabPtr
Definition TabManager.h:1383
SLATE_API void PopulateLocalTabSpawnerMenu(FMenuBuilder &PopulateMe)
Definition TabManager.cpp:1351
void SetCanDoDragOperation(bool CanDoDragOperation)
Definition TabManager.h:1112
FName ActiveLayoutName
Definition TabManager.h:1393
TSharedPtr< SDockingArea > GetDockingAreaForPanelDrawer(const TSharedPtr< SWindow > &InWindow) const
Definition TabManager.cpp:3140
SLATE_API bool HasTabSpawner(FName TabId) const
Definition TabManager.cpp:2272
static SLATE_API FVector2D GetDefaultTabWindowSize(const FTabId &TabId)
Definition TabManager.cpp:2779
SLATE_API bool HasPanelDrawer(const TSharedPtr< SWindow > &ParentWindow) const
Definition TabManager.cpp:1204
TArray< TWeakPtr< SDockingArea > > DockAreas
Definition TabManager.h:1367
SLATE_API void InsertDocumentTab(FName PlaceholderId, const FSearchPreference &SearchPreference, const TSharedRef< SDockTab > &UnmanagedTab, bool bPlaySpawnAnim)
Definition TabManager.cpp:1864
TArray< TWeakPtr< SDockTab > > TemporarilySidebaredTabs
Definition TabManager.h:1442
FOnPersistLayout OnPersistLayout_Handler
Definition TabManager.h:1396
SLATE_API bool IsValidTabForSpawning(const FTab &SomeTab) const
Definition TabManager.cpp:2289
SLATE_API void RestoreSplitterContent(const TArray< TSharedRef< class SDockingNode > > &DockingNodes, const TSharedRef< class SDockingSplitter > &SplitterWidget)
Definition TabManager.cpp:2248
SLATE_API void SetAllowWindowMenuBar(bool bInAllowWindowMenuBar)
Definition TabManager.cpp:860
PRAGMA_ENABLE_EXPERIMENTAL_WARNINGS SLATE_API void UnregisterOnPanelDrawerStateChanges(FDelegateHandle InHandle)
Definition TabManager.cpp:1240
TSharedRef< FTabSpawner > NomadTabSpawner
Definition TabManager.h:1363
SLATE_API static const FVector2D FallbackWindowSize
Definition TabManager.h:1406
SLATE_API TSharedRef< FTabManager::FLayout > PersistLayout() const
Definition TabManager.cpp:1010
FTabId MainNonCloseableTabID
Definition TabManager.h:1415
TSharedRef< FNamePermissionList > TabPermissionList
Definition TabManager.h:1439
PRAGMA_DISABLE_EXPERIMENTAL_WARNINGS SLATE_API FDelegateHandle RegisterOnPanelDrawerStateChanges(FOnPanelDrawerStateChanged::FDelegate &&InDelegate)
Definition TabManager.cpp:1235
TOptional< ETabReadOnlyBehavior > GetTabReadOnlyBehavior(const FTabId &TabId) const
Definition TabManager.cpp:2321
TSharedPtr< const SDockTab > PendingMainNonClosableTab
Definition TabManager.h:1418
static void RegisterDefaultTabWindowSize(const FTabId &TabName, const FVector2D DefaultSize)
Definition TabManager.h:953
virtual SLATE_API void OnTabOpening(const TSharedRef< SDockTab > &TabBeingOpened)
Definition TabManager.cpp:2957
SLATE_API void InsertNewDocumentTab(FName PlaceholderId, FName NewTabId, const FSearchPreference &SearchPreference, const TSharedRef< SDockTab > &UnmanagedTab)
Definition TabManager.cpp:1474
static void UnregisterDefaultTabWindowSize(const FTabId &TabName)
Definition TabManager.h:958
static TSharedRef< FArea > NewArea(const FVector2D &WindowSize)
Definition TabManager.h:938
bool bEnforceMainTab
Definition TabManager.h:1421
static SLATE_API TMap< FTabId, FVector2D > DefaultTabWindowSizeMap
Definition TabManager.h:1409
SLATE_API void ClearPendingLayoutSave()
Definition TabManager.cpp:1087
static SLATE_API TSharedPtr< class SDockingTabStack > FindTabInLiveArea(const FTabMatcher &TabMatcher, const TSharedRef< SDockingArea > &InArea)
Definition TabManager.cpp:2763
SLATE_API TSharedPtr< SDockingTabStack > FindPotentiallyClosedTab(const FTabId &ClosedTabId)
Definition TabManager.cpp:1791
SLATE_API void CloseAllAreas()
Definition TabManager.cpp:987
virtual SLATE_API void UpdateStats()
Definition TabManager.cpp:3119
SLATE_API FTabSpawnerEntry & RegisterTabSpawner(const FName TabId, const FOnSpawnTab &OnSpawnTab, const FCanSpawnTab &CanSpawnTab=FCanSpawnTab())
Definition TabManager.cpp:1096
SLATE_API void PopulateTabSpawnerMenu_Helper(FMenuBuilder &PopulateMe, struct FPopulateTabSpawnerMenu_Args Args)
Definition TabManager.cpp:1278
SLATE_API TArray< TWeakPtr< FTabSpawnerEntry > > CollectSpawners()
Definition TabManager.cpp:1361
SLATE_API void ClosePanelDrawer(const TSharedPtr< SWindow > &ParentWindow)
Definition TabManager.cpp:1224
int32 LastDocumentUID
Definition TabManager.h:1403
SLATE_API TSharedPtr< FArea > GetAreaFromInitialLayoutWithTabType(const FTabId &InTabIdToMatch) const
Definition TabManager.cpp:2801
virtual SLATE_API void OpenUnmanagedTab(FName PlaceholderId, const FSearchPreference &SearchPreference, const TSharedRef< SDockTab > &UnmanagedTab)
Definition TabManager.cpp:1887
SLATE_API void ToggleSidebarOpenTabs()
Definition TabManager.cpp:2350
virtual SLATE_API void DrawAttention(const TSharedRef< SDockTab > &TabToHighlight)
Definition TabManager.cpp:1433
SLATE_API void RestoreDocumentTab(FName PlaceholderId, ESearchPreference::Type SearchPreference, const TSharedRef< SDockTab > &UnmanagedTab)
Definition TabManager.cpp:1508
bool bAllowPerWindowMenu
Definition TabManager.h:1433
SLATE_API void UnregisterAllTabSpawners()
Definition TabManager.cpp:1114
SLATE_API bool HasValidOpenTabs(const TSharedRef< FTabManager::FLayoutNode > &SomeNode) const
Definition TabManager.cpp:2882
SLATE_API void RequestSavePersistentLayout()
Definition TabManager.cpp:1063
SLATE_API void ClearLocalWorkspaceMenuCategories()
Definition TabManager.cpp:962
TSharedPtr< SDockingArea > GetDockingAreaForWindow(const TSharedRef< SWindow > &InWindow) const
Definition TabManager.cpp:3124
bool bCanDoDragOperation
Definition TabManager.h:1427
virtual SLATE_API void OnTabManagerClosing()
Definition TabManager.cpp:2969
TSharedPtr< SWidget > MenuWidget
Definition TabManager.h:1387
virtual SLATE_API void OnTabRelocated(const TSharedRef< SDockTab > &RelocatedTab, const TSharedPtr< SWindow > &NewOwnerWindow)
Definition TabManager.cpp:2934
static TSharedRef< FSplitter > NewSplitter()
Definition TabManager.h:948
SLATE_API TSharedRef< FWorkspaceItem > AddLocalWorkspaceMenuCategory(const FText &CategoryTitle)
Definition TabManager.cpp:952
SLATE_API bool IsPanelDrawerOpen(const TSharedPtr< SWindow > &ParentWindow) const
Definition TabManager.cpp:1214
virtual SLATE_API void OnTabClosing(const TSharedRef< SDockTab > &TabBeingClosed)
Definition TabManager.cpp:2964
SLATE_API bool IsTabAllowedInSidebar(const FTabId TabId) const
Definition TabManager.cpp:2340
SLATE_API bool IsAllowedTabType(const FName TabType) const
Definition TabManager.cpp:2330
static TSharedRef< FStack > NewStack()
Definition TabManager.h:943
virtual void FinishRestore()
Definition TabManager.h:1299
static TSharedRef< FArea > NewPrimaryArea()
Definition TabManager.h:926
SLATE_API void InvokeTabForMenu(FName TabId)
Definition TabManager.cpp:1859
static TSharedRef< FArea > NewArea(const float Width, const float Height)
Definition TabManager.h:933
static SLATE_API void GetAllStacks(const TSharedRef< SDockingArea > &InDockArea, TArray< TSharedRef< SDockingTabStack > > &OutTabStacks)
Definition TabManager.cpp:3010
SLATE_API void PopulateTabSpawnerMenu(FMenuBuilder &PopulateMe, TSharedRef< FWorkspaceItem > MenuStructure)
Definition TabManager.cpp:1356
static TSharedRef< FLayout > NewLayout(const FName LayoutName)
Definition TabManager.h:921
virtual SLATE_API bool CanCloseManager(const TSet< TSharedRef< SDockTab > > &TabsToIgnore=TSet< TSharedRef< SDockTab > >())
Definition TabManager.cpp:2987
TArray< TSharedRef< FTabManager::FArea > > InvalidDockAreas
Definition TabManager.h:1377
SLATE_API bool IsAllowedTab(const FTabId &TabId) const
Definition TabManager.cpp:2301
SLATE_API void UpdateMainMenu(TSharedPtr< SDockTab > ForTab, const bool bForce)
Definition TabManager.cpp:874
PRAGMA_DISABLE_EXPERIMENTAL_WARNINGS FOnPanelDrawerStateChanged OnPanelDrawerStateChangedDelegate
Definition TabManager.h:1452
SLATE_API void SetOnPersistLayout(const FOnPersistLayout &InHandler)
Definition TabManager.cpp:982
TSharedPtr< FWorkspaceItem > LocalWorkspaceMenuRoot
Definition TabManager.h:1380
SLATE_API const TSharedRef< FWorkspaceItem > GetLocalWorkspaceMenuRoot() const
Definition TabManager.cpp:947
SLATE_API void SetMainTab(const TSharedRef< const SDockTab > &InTab)
Definition TabManager.cpp:915
FOnReadOnlyModeChanged & GetOnReadOnlyModeChangedDelegate()
Definition TabManager.h:1109
SLATE_API bool IsTabCloseable(const TSharedRef< const SDockTab > &InTab) const
Definition TabManager.cpp:942
SLATE_API TSharedPtr< SDockTab > TryToggleTabInPanelDrawer(const FTabId &TabId, const TSharedPtr< SWindow > &ParentWindow, bool bForceInDrawerPanel=false)
Definition TabManager.cpp:2529
SLATE_API TSharedPtr< SDockTab > InvokeTab_Internal(const FTabId &TabId, bool bInvokeAsInactive=false, bool bForceOpenWindowIfNeeded=false)
Definition TabManager.cpp:1617
virtual SLATE_API TSharedPtr< SDockTab > TryInvokeTab(const FTabId &TabId, bool bInvokeAsInactive=false)
Definition TabManager.cpp:1532
static bool HasAnyMatchingTabs(const TSharedRef< FTabManager::FLayoutNode > &SomeNode, const TFunctionRef< bool(const FTab &)> &Matcher)
Definition TabManager.cpp:2858
bool bReadOnly
Definition TabManager.h:1445
SLATE_API void SetTabsTo(const TSharedRef< FTabManager::FLayoutNode > &SomeNode, const ETabState::Type NewTabState, const ETabState::Type OriginalTabState) const
Definition TabManager.cpp:2902
TSharedPtr< SDockTab > GetOwnerTab()
Definition TabManager.h:1147
SLATE_API void RemoveTabFromCollapsedAreas(const FTabMatcher &Matcher)
Definition TabManager.cpp:3095
SLATE_API TSharedPtr< SDockingArea > RestoreArea(const TSharedRef< FArea > &AreaToRestore, const TSharedPtr< SWindow > &InParentWindow, const bool bEmbedTitleAreaContent=false, const EOutputCanBeNullptr OutputCanBeNullptr=EOutputCanBeNullptr::Never, bool bForceOpenWindowIfNeeded=false)
Definition TabManager.cpp:1924
virtual SLATE_API void OnTabForegrounded(const TSharedPtr< SDockTab > &NewForegroundTab, const TSharedPtr< SDockTab > &BackgroundedTab)
Definition TabManager.cpp:2929
SLATE_API TSharedPtr< SDockTab > FindLastTabInWindow(TSharedPtr< SWindow > Window) const
Definition TabManager.cpp:2721
PRAGMA_ENABLE_EXPERIMENTAL_WARNINGS TMap< FTabId, TSharedRef< SDockTab > > PanelDrawerActiveHiddenTabs
Definition TabManager.h:1456
Definition Text.h:385
static CORE_API FText FromName(const FName &Val)
Definition Text.cpp:1076
static CORE_API FText AsNumber(float Val, const FNumberFormattingOptions *const Options=NULL, const FCulturePtr &TargetCulture=NULL)
static CORE_API FText Format(FTextFormat Fmt, const FFormatNamedArguments &InArguments)
Definition Text.cpp:469
Definition WorkspaceItem.h:13
TAttribute< FText > TooltipTextAttribute
Definition WorkspaceItem.h:216
TAttribute< FText > DisplayNameAttribute
Definition WorkspaceItem.h:215
void AddItem(const TSharedRef< FWorkspaceItem > &ItemToAdd)
Definition WorkspaceItem.h:108
FSlateIcon Icon
Definition WorkspaceItem.h:213
virtual EConsoleVariableFlags GetFlags() const =0
Definition IConsoleManager.h:558
virtual bool GetBool() const =0
Definition SDockTab.h:55
Definition SDockingArea.h:29
Definition SDockingTabStack.h:52
Definition SWidget.h:165
Definition SWindow.h:243
Definition Array.h:670
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis(OtherType *ThisPtr)
Definition SharedPointer.h:1780
Definition SharedPointer.h:692
Definition SharedPointer.h:153
UE_FORCEINLINE_HINT ValueType & Add(const KeyType &InKey, const ValueType &InValue)
Definition SortedMap.h:194
Definition SharedPointer.h:1295
UE_FORCEINLINE_HINT TSharedPtr< ObjectType, Mode > Pin() const &
Definition SharedPointer.h:1512
UE_FORCEINLINE_HINT bool IsValid() const
Definition SharedPointer.h:1535
Definition TabManager.h:215
Definition TabManager.h:392
Definition TabManager.h:28
bool IsHomeScreenEnabled()
Definition TabManager.h:29
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition TabManager.cpp:1246
Definition SDockingArea.h:20
Definition SlateIcon.h:13
Definition TabManager.h:73
bool IsTabPersistable() const
Definition TabManager.h:98
FName TabType
Definition TabManager.h:140
FTabId(const FName InTabType)
Definition TabManager.h:85
FTabId()
Definition TabManager.h:74
FString ToString() const
Definition TabManager.h:110
int32 InstanceId
Definition TabManager.h:141
friend uint32 GetTypeHash(const FTabId &In)
Definition TabManager.h:135
FTabId(const FName InTabType, const int32 InInstanceId)
Definition TabManager.h:79
FTabId(const FName InTabType, const ETabIdFlags InFlags)
Definition TabManager.h:91
FText ToText() const
Definition TabManager.h:124
bool operator==(const FTabId &Other) const
Definition TabManager.h:103
bool ShouldSaveLayout() const
Definition TabManager.h:108
Definition TabManager.h:1019
Type
Definition TabManager.h:1021
@ PreferLiveTab
Definition TabManager.h:1022
Definition TabManager.h:677
float PanelDrawerCoefficient
Definition TabManager.h:679
float MainContentCoefficient
Definition TabManager.h:678
Definition TabManager.h:683
FTabId TabId
Definition TabManager.h:684
FPanelDrawerSize Size
Definition TabManager.h:685
Definition TabManager.h:468
FTab(const FTabId &InTabId, ETabState::Type InTabState)
Definition TabManager.h:469
TOptional< bool > bIsLockedInPlace
Definition TabManager.h:501
FTabId TabId
Definition TabManager.h:496
float SidebarSizeCoefficient
Definition TabManager.h:499
ETabState::Type TabState
Definition TabManager.h:497
ESidebarLocation SidebarLocation
Definition TabManager.h:498
FTab(const FTabId &InTabId, ETabState::Type InTabState, ESidebarLocation InSidebarLocation, float InSidebarSizeCoefficient, bool bInPinnedInSidebar)
Definition TabManager.h:480
bool bPinnedInSidebar
Definition TabManager.h:500
bool operator==(const FTab &Other) const
Definition TabManager.h:491
Definition SDockingTabStack.h:356
Definition TabManager.h:235
FTabSpawnerEntry & SetTooltipText(const FText &InTooltipText)
Definition TabManager.h:293
FTabSpawnerEntry & SetDisplayNameAttribute(const TAttribute< FText > &InLegibleName)
Definition TabManager.h:275
FTabSpawnerEntry & SetAutoGenerateMenuEntry(bool bInAutoGenerateMenuEntry)
Definition TabManager.h:317
FTabSpawnerEntry & SetMenuType(const TAttribute< ETabSpawnerMenuType::Type > &InMenuType)
Definition TabManager.h:311
FTabSpawnerEntry & SetReuseTabMethod(const FOnFindTabToReuse &InReuseTabMethod)
Definition TabManager.h:305
FTabSpawnerEntry & SetTooltipTextAttribute(const TAttribute< FText > &InTooltipText)
Definition TabManager.h:281
TOptional< bool > IsTabLocked() const
Definition TabManager.h:334
virtual TSharedPtr< FTabSpawnerEntry > AsSpawnerEntry() override
Definition TabManager.h:344
const FName GetTabType() const
Definition TabManager.h:349
FTabSpawnerEntry & SetIcon(const FSlateIcon &InIcon)
Definition TabManager.h:269
FTabSpawnerEntry & SetGroup(const TSharedRef< FWorkspaceItem > &InGroup)
Definition TabManager.h:299
FTabSpawnerEntry(const FName &InTabType, const FOnSpawnTab &InSpawnTabMethod, const FCanSpawnTab &InCanSpawnTab)
Definition TabManager.h:236
const bool IsHidden() const
Definition TabManager.h:354
bool IsTabNameHidden() const
Definition TabManager.h:339
FTabSpawnerEntry & SetCanSidebarTab(bool bInCanSidebarTab)
Definition TabManager.h:323
FTabSpawnerEntry & SetDisplayName(const FText &InLegibleName)
Definition TabManager.h:287
bool CanSidebarTab() const
Definition TabManager.h:329
FTabSpawnerEntry & SetReadOnlyBehavior(const ETabReadOnlyBehavior &InReadOnlyBehavior)
Definition TabManager.h:263
Definition UIAction.h:37
static IConsoleManager & Get()
Definition IConsoleManager.h:1270
Definition Optional.h:131
Definition Tuple.h:652
T Y
Definition Vector2D.h:52
T X
Definition Vector2D.h:49