#pragma once

#include "CoreMinimal.h"
#include "CoreBaseUserWidget.h"
#include "ESettingsOptionType.h"
#include "CoreBaseSettingWidget.generated.h"

class UDBDImage;
class USettingsOptionViewData;

UCLASS(Blueprintable, Abstract, EditInlineNew)
class UCoreBaseSettingWidget : public UCoreBaseUserWidget
{
	GENERATED_BODY()

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

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	USettingsOptionViewData* _viewData;

public:
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetPlaceInList(int32 placeInList);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetData(USettingsOptionViewData* viewData);

	UFUNCTION(BlueprintCallable)
	ESettingsOptionType GetWidgetType();

public:
	UCoreBaseSettingWidget();
};

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