// 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(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); }