2022-05-23 18:41:30 +00:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2022-09-13 07:18:28 +00:00
|
|
|
#include "Blueprint/UserWidget.h"
|
2022-05-23 18:41:30 +00:00
|
|
|
#include "Blueprint/UserWidgetPool.h"
|
2022-09-13 07:18:28 +00:00
|
|
|
#include "Templates/SharedPointer.h"
|
|
|
|
#include "Templates/SubclassOf.h"
|
|
|
|
#include "UObject/UObjectGlobals.h"
|
|
|
|
|
2022-05-23 18:41:30 +00:00
|
|
|
#include "GameSettingDetailView.generated.h"
|
|
|
|
|
|
|
|
class UCommonRichTextBlock;
|
|
|
|
class UCommonTextBlock;
|
|
|
|
class UGameSetting;
|
|
|
|
class UGameSettingDetailExtension;
|
|
|
|
class UGameSettingVisualData;
|
2022-09-13 07:18:28 +00:00
|
|
|
class UObject;
|
|
|
|
class UVerticalBox;
|
|
|
|
struct FStreamableHandle;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
UCLASS(Abstract)
|
|
|
|
class GAMESETTINGS_API UGameSettingDetailView : public UUserWidget
|
|
|
|
{
|
|
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
|
|
UGameSettingDetailView(const FObjectInitializer& ObjectInitializer);
|
|
|
|
|
|
|
|
void FillSettingDetails(UGameSetting* InSetting);
|
|
|
|
|
|
|
|
//UVisual interface
|
|
|
|
virtual void ReleaseSlateResources(bool bReleaseChildren) override;
|
|
|
|
//~ End UVisual Interface
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual void NativeConstruct() override;
|
|
|
|
virtual void NativeOnInitialized() override;
|
|
|
|
|
|
|
|
void CreateDetailsExtension(UGameSetting* InSetting, TSubclassOf<UGameSettingDetailExtension> ExtensionClass);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
UPROPERTY(EditAnywhere)
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UGameSettingVisualData> VisualData;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
UPROPERTY(Transient)
|
|
|
|
FUserWidgetPool ExtensionWidgetPool;
|
|
|
|
|
|
|
|
UPROPERTY(Transient)
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UGameSetting> CurrentSetting;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
TSharedPtr<FStreamableHandle> StreamingHandle;
|
|
|
|
|
|
|
|
private: // Bound Widgets
|
|
|
|
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional, BlueprintProtected = true, AllowPrivateAccess = true))
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UCommonTextBlock> Text_SettingName;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional, BlueprintProtected = true, AllowPrivateAccess = true))
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UCommonRichTextBlock> RichText_Description;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional, BlueprintProtected = true, AllowPrivateAccess = true))
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UCommonRichTextBlock> RichText_DynamicDetails;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional, BlueprintProtected = true, AllowPrivateAccess = true))
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UCommonRichTextBlock> RichText_WarningDetails;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional, BlueprintProtected = true, AllowPrivateAccess = true))
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UCommonRichTextBlock> RichText_DisabledDetails;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional, BlueprintProtected = true, AllowPrivateAccess = true))
|
2022-09-13 07:18:28 +00:00
|
|
|
TObjectPtr<UVerticalBox> Box_DetailsExtension;
|
2022-05-23 18:41:30 +00:00
|
|
|
};
|