#pragma once

#include "CoreMinimal.h"
#include "TallyMenuViewInterface.h"
#include "CoreBaseUserWidget.h"
#include "CoreTallyMenuWidget.generated.h"

class UCoreFooterButtonWidget;
class UCoreKeyListenerInputPromptWidget;
class UCoreInputSwitcherWidget;
class UCoreButtonWidget;

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

protected:
	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UCoreFooterButtonWidget* SettingsButton;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UCoreKeyListenerInputPromptWidget* SettingsPrompt;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UCoreInputSwitcherWidget* SpectateButton;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UCoreInputSwitcherWidget* LeaveButton;

protected:
	UFUNCTION(BlueprintCallable)
	void OnSpectateButtonClicked();

	UFUNCTION(BlueprintCallable)
	void OnSettingsPromptTriggered();

	UFUNCTION(BlueprintCallable)
	void OnSettingsButtonClicked(UCoreButtonWidget* target);

	UFUNCTION(BlueprintCallable)
	void OnLeaveButtonClicked();

public:
	UCoreTallyMenuWidget();
};

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