#pragma once

#include "CoreMinimal.h"
#include "Components/MultiLineEditableTextBox.h"
#include "MultiLineEditableTextBoxCharacterLimitReachedDelegate.h"
#include "UObject/NoExportTypes.h"
#include "DBDMultiLineEditableTextBox.generated.h"

UCLASS(Blueprintable)
class UDBDMultiLineEditableTextBox : public UMultiLineEditableTextBox
{
	GENERATED_BODY()

public:
	UPROPERTY(BlueprintReadWrite, BlueprintAssignable)
	FMultiLineEditableTextBoxCharacterLimitReachedDelegate OnCharacterLimitReached;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString TextStyle;

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 _characterLimit;

public:
	UFUNCTION(BlueprintCallable)
	void SetCharacterLimit(int32 characterLimit);

	UFUNCTION(BlueprintCallable)
	void SetBackgroundColor(const FLinearColor color);

	UFUNCTION(BlueprintCallable)
	static void PopulateTextStyles();

	UFUNCTION(BlueprintCallable)
	static TArray<FString> GetTextStyles();

	UFUNCTION(BlueprintPure)
	int32 GetCharacterLimit() const;

public:
	UDBDMultiLineEditableTextBox();
};

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