#pragma once

#include "CoreMinimal.h"
#include "CoreButtonWidget.h"
#include "CoreExpandableListWidget.generated.h"

class UDBDTextBlock;
class UVerticalBox;

UCLASS(Blueprintable, EditInlineNew)
class DBDUIVIEWSCORE_API UCoreExpandableListWidget : public UCoreButtonWidget
{
	GENERATED_BODY()

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

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UVerticalBox* ContentContainer;

public:
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
	void UpdateVisuals();

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
	void SetInitialVisuals(bool isExpanded);

	UFUNCTION(BlueprintCallable)
	void SetExpanded(bool shouldBeExpanded);

	UFUNCTION(BlueprintCallable)
	void SetExpandable(bool isExpandable);

	UFUNCTION(BlueprintPure)
	bool IsExpanded() const;

	UFUNCTION(BlueprintPure)
	bool IsExpandable() const;

public:
	UCoreExpandableListWidget();
};

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