October3d55/M/AutoSettings/Source/AutoSettingsInput/Private/UI/BindCaptureButton.cpp

44 lines
1.1 KiB
C++

// Copyright Sam Bonifacio. All Rights Reserved.
#include "UI/BindCaptureButton.h"
#include "AutoSettingsError.h"
UBindCaptureButton::UBindCaptureButton(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
, CapturePromptZOrder(1)
{
}
UBindCapturePrompt* UBindCaptureButton::StartCapture()
{
if(!ensure(BindCapturePromptClass))
{
FAutoSettingsError::LogInvalidClass(GetClass(), "BindCapturePromptClass");
return nullptr;
}
Prompt = CreateWidget<UBindCapturePrompt>(GetOwningPlayer(), BindCapturePromptClass);
if(!ensure(Prompt))
{
FAutoSettingsError::LogWidgetCreationFailed(GetClass(), "BindCapturePrompt");
return nullptr;
}
Prompt->OnChordCaptured.AddDynamic(this, &UBindCaptureButton::ChordCaptured);
Prompt->KeyGroup = KeyGroup;
InitializePrompt(Prompt);
return Prompt;
}
void UBindCaptureButton::InitializePrompt_Implementation(UBindCapturePrompt * PromptWidget)
{
// Add the prompt straight to the viewport
PromptWidget->AddToViewport(CapturePromptZOrder);
}
void UBindCaptureButton::ChordCaptured(FCapturedInput CapturedInput)
{
OnChordCaptured.Broadcast(CapturedInput);
}