#pragma once

#include "CoreMinimal.h"
#include "CoreBaseUserWidget.h"
#include "UObject/SoftObjectPtr.h"
#include "CoreInboxHeaderWidget.generated.h"

class UDBDTextBlock;
class UDBDImage;
class UTexture2D;
class UMaterialInterface;

UCLASS(Blueprintable, EditInlineNew)
class DBDUIVIEWSCORE_API UCoreInboxHeaderWidget : public UCoreBaseUserWidget
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDTextBlock* TitleTB;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDTextBlock* SubtitleTB;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDImage* IconIMG;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDImage* BackgroundIMG;

public:
	UFUNCTION(BlueprintPure)
	void SetTexts(const FText& titleText, const FText& subtitleText) const;

	UFUNCTION(BlueprintPure=false, BlueprintCallable)
	void SetIconTexture(const TSoftObjectPtr<UTexture2D> iconTexture, const bool matchSize) const;

	UFUNCTION(BlueprintPure=false, BlueprintCallable)
	void SetBackgroundMaterial(const TSoftObjectPtr<UMaterialInterface> backgroundMaterial) const;

public:
	UCoreInboxHeaderWidget();
};

FORCEINLINE uint32 GetTypeHash(const UCoreInboxHeaderWidget) { return 0; }
