// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Engine/CancellableAsyncAction.h" #include "GameplayTagContainer.h" #include "UObject/SoftObjectPtr.h" #include "AsyncAction_PushContentToLayerForPlayer.generated.h" #define UE_API COMMONGAME_API class APlayerController; class UCommonActivatableWidget; class UObject; struct FFrame; struct FStreamableHandle; DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FPushContentToLayerForPlayerAsyncDelegate, UCommonActivatableWidget*, UserWidget); /** * */ UCLASS(MinimalAPI, BlueprintType) class UAsyncAction_PushContentToLayerForPlayer : public UCancellableAsyncAction { GENERATED_UCLASS_BODY() public: UE_API virtual void Cancel() override; UFUNCTION(BlueprintCallable, BlueprintCosmetic, meta=(WorldContext = "WorldContextObject", BlueprintInternalUseOnly="true")) static UE_API UAsyncAction_PushContentToLayerForPlayer* PushContentToLayerForPlayer(APlayerController* OwningPlayer, UPARAM(meta = (AllowAbstract=false)) TSoftClassPtr WidgetClass, UPARAM(meta = (Categories = "UI.Layer")) FGameplayTag LayerName, bool bSuspendInputUntilComplete = true); UE_API virtual void Activate() override; public: UPROPERTY(BlueprintAssignable) FPushContentToLayerForPlayerAsyncDelegate BeforePush; UPROPERTY(BlueprintAssignable) FPushContentToLayerForPlayerAsyncDelegate AfterPush; private: FGameplayTag LayerName; bool bSuspendInputUntilComplete = false; TWeakObjectPtr OwningPlayerPtr; TSoftClassPtr WidgetClass; TSharedPtr StreamingHandle; }; #undef UE_API