UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WidgetBlueprintGeneratedClass.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"
10
11#include "WidgetBlueprintGeneratedClass.generated.h"
12
14class UWidget;
15class UUserWidget;
19class UWidgetTree;
20
21UENUM()
23{
26};
27
28USTRUCT()
53
54
55#if WITH_EDITOR
57{
58public:
59 // delegate for generating widget asset registry tags.
63
64 // called by UWidgetBlueprintGeneratedClass::GetAssetRegistryTags()
65 static UMG_API FGetAssetTagsWithContext GetAssetTagsWithContext;
66 // called by UWidgetBlueprintGeneratedClass::CollectSaveOverrides()
67 static UMG_API FCollectSaveOverrides CollectSaveOverrides;
68 UE_DEPRECATED(5.4, "Subscribe to GetAssetTagsWithContext instead.")
69 static UMG_API FGetAssetTags GetAssetTags;
70};
71#endif
72
79UCLASS(MinimalAPI)
81{
83 friend class FWidgetBlueprintCompilerContext;
84
85public:
87
89
91 UPROPERTY(DuplicateTransient)
92 TObjectPtr<UWidgetTree> WidgetTree;
93
95 UPROPERTY()
97
99 UPROPERTY()
100 uint32 bClassRequiresNativeTick :1;
101
102#if WITH_EDITORONLY_DATA
103public:
106#endif
107
108public:
114 UPROPERTY()
115 uint32 bCanCallInitializedWithoutPlayerContext : 1;
116
117 UPROPERTY()
119
120 UPROPERTY()
122
127 UPROPERTY()
128 TArray<FName> NamedSlots;
129
130#if WITH_EDITORONLY_DATA
132 UPROPERTY()
134
137
140#endif
141
146 UPROPERTY(AssetRegistrySearchable)
147 TArray<FName> AvailableNamedSlots;
148
155 UPROPERTY()
156 TArray<FName> InstanceNamedSlots;
157
158public:
159 UWidgetTree* GetWidgetTreeArchetype() const { return WidgetTree; }
160 UMG_API void SetWidgetTreeArchetype(UWidgetTree* InWidgetTree);
161
162 UMG_API void GetNamedSlotArchetypeContent(TFunctionRef<void(FName /*SlotName*/, UWidget* /*Content*/)> Predicate) const;
163
164 // Walks up the hierarchy looking for a valid widget tree.
165 UMG_API UWidgetBlueprintGeneratedClass* FindWidgetTreeOwningClass() const;
166
167 //~ Begin UObject interface
168 UMG_API virtual void Serialize(FArchive& Ar) override;
169 UMG_API virtual void PostLoad() override;
170 UMG_API virtual bool NeedsLoadForServer() const override;
171#if WITH_EDITOR
172 UMG_API virtual void GetAssetRegistryTags(FAssetRegistryTagsContext Context) const override;
173 UE_DEPRECATED(5.4, "Implement the version that takes FAssetRegistryTagsContext instead.")
174 UMG_API virtual void GetAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags) const override;
175 UMG_API virtual void CollectSaveOverrides(FObjectCollectSaveOverridesContext SaveContext) override;
176#endif
177 //~ End UObject interface
178
179 UMG_API virtual void PurgeClass(bool bRecompilingOnLoad) override;
180
186 UMG_API void InitializeWidget(UUserWidget* UserWidget) const;
187
188 static UMG_API void InitializeWidgetStatic(UUserWidget* UserWidget
189 , const UClass* InClass
194
195 bool ClassRequiresNativeTick() const { return bClassRequiresNativeTick; }
196
197#if WITH_EDITOR
199#endif
200
202 template<typename ExtensionType>
203 ExtensionType* GetExtension(bool bIncludeSuper = true)
204 {
205 return Cast<ExtensionType>(GetExtension(ExtensionType::StaticClass(), bIncludeSuper));
206 }
207
210
213
214 template<typename Predicate>
215 void ForEachExtension(Predicate Pred, bool bIncludeSuper = true) const
216 {
217 for (UWidgetBlueprintGeneratedClassExtension* Extension : Extensions)
218 {
219 check(Extension);
220 Pred(Extension);
221 }
222 if (bIncludeSuper)
223 {
225 {
226 ParentClass->ForEachExtension(MoveTemp(Pred));
227 }
228 }
229 }
230
231private:
234
236};
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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 UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
EBindingKind
Definition WidgetBlueprintGeneratedClass.h:23
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition NameTypes.h:617
Definition ObjectSaveContext.h:193
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition BlueprintGeneratedClass.h:433
Definition Class.h:3793
Definition UserWidget.h:284
Definition WidgetAnimation.h:26
Definition WidgetBlueprintGeneratedClassExtension.h:16
Definition WidgetBlueprintGeneratedClass.h:81
bool ClassRequiresNativeTick() const
Definition WidgetBlueprintGeneratedClass.h:195
ExtensionType * GetExtension(bool bIncludeSuper=true)
Definition WidgetBlueprintGeneratedClass.h:203
void ForEachExtension(Predicate Pred, bool bIncludeSuper=true) const
Definition WidgetBlueprintGeneratedClass.h:215
Definition WidgetTree.h:20
Definition Widget.h:217
Definition WidgetBlueprintGeneratedClass.h:30
Definition DynamicPropertyPath.h:19
Definition Guid.h:109
Definition ObjectPtr.h:488