UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SPanelDrawerArea.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9
10class FWeakWidgetPath;
11class FWidgetPath;
12class SDockTab;
13class SDockingArea;
14
15struct FFocusEvent;
16
17namespace UE::Slate::Private
18{
19
25
30{
31public:
34
35 void Construct(const FArguments& InArgs, const TSharedRef<SWidget>& InContent);
36
38
39 virtual void Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime) override;
40
43
44 bool IsOpen() const;
49
51 void RequestSaveLayout();
52
53 void SetupAnimationLayout();
54
55 void SetupOpenedLayout();
56 void SetupClosedLayout();
57
58 void OnMainContentSlotResized(float InContentSlotSize);
59 void OnPanelDrawerSlotResized(float InOpenPanelDrawerSize);
60
61 float GetMainContentCoefficient() const;
62 float GetPanelDrawerCoefficient() const;
63
64 void PlayAnimation(bool bIsOpening);
65 EActiveTimerReturnType UpdateAnimation(const double InCurrentTime, const float InDeltaTime);
66 void UpdateAnimatedSlideWidth();
67
68 FOptionalSize GetAnimatedWidthOverrideForSpacer() const;
69 FOptionalSize GetAnimatedWidthOverrideForPanelDrawer() const;
70 EVisibility GetAnimatedSpacerVisibility() const;
71 EVisibility GetAnimatedDrawerPanelVisibility() const;
72
73 void SetPanelDrawerData(TSharedPtr<UE::Slate::Private::FPanelDrawerData>&& InNewData);
74 TSharedRef<SWidget> MakePanelDrawerContent() const;
75 void OnFocusChanging(const FWeakWidgetPath& PreviousFocusPath, const FWidgetPath& NewWidgetPath, const FFocusEvent& InFocusEvent);
76
77
78 bool bIsOpen = false;
79
80 TSharedPtr<SWidget> AreaContent;
81 TSharedPtr<SWidget> PanelDrawerContent;
82 TSharedPtr<UE::Slate::Private::FPanelDrawerData> PanelDrawerData;
83
84 // Animation Data
85 bool bRequestedAnimation = false;
86 FCurveSequence OpenCloseAnimation;
87 FThrottleRequest AnimationThrottle;
88 TSharedPtr<FActiveTimerHandle> OpenCloseTimer;
89
90 float DesiredOpenWidth = 0.f;
91 // The animated include also sliding in of the splitter handle
92 float AnimatedSlideWidth = 0.f;
93
94 FSimpleDelegate OnExternalStateChange;
95};
96}
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
EActiveTimerReturnType
Definition SlateEnums.h:329
Definition ActiveTimerHandle.h:12
Definition ThrottleManager.h:14
Definition WidgetPath.h:213
Definition WidgetPath.h:51
Definition SCompoundWidget.h:22
Definition SDockTab.h:55
Definition SDockingArea.h:29
Definition SWidget.h:165
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SPanelDrawerArea.h:30
TSharedPtr< SDockTab > GetHostedTab() const
Definition SPanelDrawerArea.cpp:406
FSimpleDelegate & GetOnExternalStateChanged()
Definition SPanelDrawerArea.cpp:401
TSharedPtr< UE::Slate::Private::FPanelDrawerData > GetHostedPanelDrawerData() const
Definition SPanelDrawerArea.cpp:416
void ClosePanel(bool bWithAnimation, bool bIsTabBeingTransfered=false)
Definition SPanelDrawerArea.cpp:100
bool IsOpen() const
Definition SPanelDrawerArea.cpp:386
void Construct(const FArguments &InArgs, const TSharedRef< SWidget > &InContent)
Definition SPanelDrawerArea.cpp:24
SLATE_BEGIN_ARGS(SPanelDrawerArea)
Definition SPanelDrawerArea.h:32
void OpenPanel(bool bWithAnimation, const TSharedRef< UE::Slate::Private::FPanelDrawerData > &InData)
Definition SPanelDrawerArea.cpp:62
bool IsHostingTab(TSharedPtr< SDockTab > InDockTab) const
Definition SPanelDrawerArea.cpp:391
Definition OverriddenPropertySet.cpp:45
Definition SScissorRectBox.cpp:10
Definition DockingUtilsPrivate.h:8
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition Visibility.h:12
Definition CurveSequence.h:26
Definition Events.h:51
Definition Geometry.h:40
Definition SlateStructs.h:13
Definition TabManager.h:677
Definition SPanelDrawerArea.h:21
TSharedPtr< SDockTab > HostedTab
Definition SPanelDrawerArea.h:23
FTabManager::FPanelDrawerSize Size
Definition SPanelDrawerArea.h:22