UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SWidgetSwitcher.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 "Misc/Attribute.h"
7#include "Layout/Visibility.h"
9#include "Widgets/SWidget.h"
10#include "SlotBase.h"
11#include "Layout/Children.h"
12#include "Widgets/SPanel.h"
13
15
22 : public SPanel
23{
24public:
25
27
33
35
36
37 SLATE_ATTRIBUTE(int32, WidgetIndex)
38
40
43
44public:
45
53
57 SLATE_API void Construct( const FArguments& InArgs );
58
65
72 {
73 return WidgetIndex.Get();
74 }
75
82 {
83 return AllChildren.Num();
84 }
85
93
101
108
118
125
126 SLATE_API virtual bool ValidatePathToChild(SWidget* InChild) override;
127
128public:
129
135 static SLATE_API FSlot::FSlotArguments Slot();
136
137protected:
138
139 // SCompoundWidget interface
140
141 SLATE_API virtual void OnArrangeChildren( const FGeometry& AllottedGeometry, FArrangedChildren& ArrangedChildren ) const override;
142 SLATE_API virtual FVector2D ComputeDesiredSize( float ) const override;
143 SLATE_API virtual FChildren* GetChildren( ) override;
144 virtual void OnSlotAdded(int32 AddedIndex) {}
146 virtual bool ComputeVolatility() const override { return WidgetIndex.IsBound(); }
147 SLATE_API const FSlot* GetActiveSlot() const;
148
149 TPanelChildren<FSlot>& GetTypedChildren() { return AllChildren; }
150
151private:
152
154 TAttribute<int32> WidgetIndex;
155
156 /*
157 * Holds the collection of all child widget, however the only one with a valid parent pointer
158 * will be the one in the dynamic slot.
159 */
160 TPanelChildren<FSlot> AllChildren;
161
163 TOneDynamicChild<FSlot> OneDynamicChild;
164
165#if WITH_ACCESSIBILITY
168#endif
169};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_SLOT_ARGUMENT(SlotType, SlotName)
Definition DeclarativeSyntaxSupport.h:348
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
Definition ArrangedChildren.h:15
Definition BasicLayoutWidgetSlot.h:646
Definition ChildrenBase.h:27
Definition SPanel.h:30
void Construct()
Definition SPanel.h:65
Definition SWidgetSwitcher.h:23
int32 GetNumWidgets() const
Definition SWidgetSwitcher.h:81
static SLATE_API FSlot::FSlotArguments Slot()
Definition SWidgetSwitcher.cpp:22
SLATE_API int32 GetWidgetIndex(TSharedRef< SWidget > Widget) const
Definition SWidgetSwitcher.cpp:87
virtual SLATE_API void OnArrangeChildren(const FGeometry &AllottedGeometry, FArrangedChildren &ArrangedChildren) const override
Definition SWidgetSwitcher.cpp:173
SLATE_API TSharedPtr< SWidget > GetActiveWidget() const
Definition SWidgetSwitcher.cpp:65
SLATE_API const FSlot * GetActiveSlot() const
Definition SWidgetSwitcher.cpp:214
void SetActiveWidget(TSharedRef< SWidget > Widget)
Definition SWidgetSwitcher.h:114
virtual SLATE_API FChildren * GetChildren() override
Definition SWidgetSwitcher.cpp:209
SLATE_API TSharedPtr< SWidget > GetWidget(int32 SlotIndex) const
Definition SWidgetSwitcher.cpp:77
virtual SLATE_API FVector2D ComputeDesiredSize(float) const override
Definition SWidgetSwitcher.cpp:194
SLATE_API void SetActiveWidgetIndex(int32 Index)
Definition SWidgetSwitcher.cpp:135
SLATE_API int32 RemoveSlot(TSharedRef< SWidget > WidgetToRemove)
Definition SWidgetSwitcher.cpp:102
SLATE_API FScopedWidgetSlotArguments AddSlot(int32 SlotIndex=INDEX_NONE)
Definition SWidgetSwitcher.cpp:27
virtual void OnSlotAdded(int32 AddedIndex)
Definition SWidgetSwitcher.h:144
virtual bool ComputeVolatility() const override
Definition SWidgetSwitcher.h:146
int32 GetActiveWidgetIndex() const
Definition SWidgetSwitcher.h:71
FBasicLayoutWidgetSlot FSlot
Definition SWidgetSwitcher.h:26
virtual void OnSlotRemoved(int32 RemovedIndex, TSharedRef< SWidget > RemovedWidget, bool bWasActiveSlot)
Definition SWidgetSwitcher.h:145
TPanelChildren< FSlot > & GetTypedChildren()
Definition SWidgetSwitcher.h:149
SLATE_BEGIN_ARGS(SWidgetSwitcher)
Definition SWidgetSwitcher.h:28
virtual SLATE_API bool ValidatePathToChild(SWidget *InChild) override
Definition SWidgetSwitcher.cpp:168
Definition SWidget.h:165
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
bool IsBound() const
Definition Attribute.h:427
Definition Children.h:1028
Definition Children.h:461
virtual int32 Num() const override
Definition Children.h:485
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
U16 Index
Definition radfft.cpp:71
static SLATECORE_API const EVisibility SelfHitTestInvisible
Definition Visibility.h:26
Definition Geometry.h:40