69 lines
2.0 KiB
C
69 lines
2.0 KiB
C
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "CoreMinimal.h"
|
||
|
#include "CommonActivatableWidget.h"
|
||
|
#include "CommonMessagingSubsystem.h"
|
||
|
|
||
|
#include "CommonGameDialog.generated.h"
|
||
|
|
||
|
USTRUCT(BlueprintType)
|
||
|
struct FConfirmationDialogAction
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
|
||
|
public:
|
||
|
/** Required: The dialog option to provide. */
|
||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||
|
ECommonMessagingResult Result = ECommonMessagingResult::Unknown;
|
||
|
|
||
|
/** Optional: Display Text to use instead of the action name associated with the result. */
|
||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||
|
FText OptionalDisplayText;
|
||
|
|
||
|
bool operator==(const FConfirmationDialogAction& Other) const
|
||
|
{
|
||
|
return Result == Other.Result &&
|
||
|
OptionalDisplayText.EqualTo(Other.OptionalDisplayText);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
UCLASS()
|
||
|
class COMMONGAME_API UCommonGameDialogDescriptor : public UObject
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
|
||
|
public:
|
||
|
static UCommonGameDialogDescriptor* CreateConfirmationOk(const FText& Header, const FText& Body);
|
||
|
static UCommonGameDialogDescriptor* CreateConfirmationOkCancel(const FText& Header, const FText& Body);
|
||
|
static UCommonGameDialogDescriptor* CreateConfirmationYesNo(const FText& Header, const FText& Body);
|
||
|
static UCommonGameDialogDescriptor* CreateConfirmationYesNoCancel(const FText& Header, const FText& Body);
|
||
|
|
||
|
public:
|
||
|
/** The header of the message to display */
|
||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||
|
FText Header;
|
||
|
|
||
|
/** The body of the message to display */
|
||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||
|
FText Body;
|
||
|
|
||
|
/** The confirm button's input action to use. */
|
||
|
UPROPERTY(BlueprintReadWrite)
|
||
|
TArray<FConfirmationDialogAction> ButtonActions;
|
||
|
};
|
||
|
|
||
|
|
||
|
UCLASS(Abstract)
|
||
|
class COMMONGAME_API UCommonGameDialog : public UCommonActivatableWidget
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
|
||
|
public:
|
||
|
UCommonGameDialog();
|
||
|
|
||
|
virtual void SetupDialog(UCommonGameDialogDescriptor* Descriptor, FCommonMessagingResultDelegate ResultCallback);
|
||
|
|
||
|
virtual void KillDialog();
|
||
|
};
|