diff --git a/Source/MyProject/Private/MagicFloatInput.cpp b/Source/MyProject/Private/MagicFloatInput.cpp index d09a782..9613d23 100644 --- a/Source/MyProject/Private/MagicFloatInput.cpp +++ b/Source/MyProject/Private/MagicFloatInput.cpp @@ -15,4 +15,9 @@ void UMagicFloatInput::HandleOnTextCommitted( x = FCString::Atod(*inText.ToString()); SetText(FText::FromString(FString::Printf(TEXT("%.7f"), x))); + HandleMagicFloatsMangledEvent(); +} + +void UMagicFloatInput::HandleMagicFloatsMangledEvent() { + OnMagicFloatsMangled.ExecuteIfBound(); } diff --git a/Source/MyProject/Private/VerifierTextBlock.cpp b/Source/MyProject/Private/VerifierTextBlock.cpp index e07918a..5f18f59 100644 --- a/Source/MyProject/Private/VerifierTextBlock.cpp +++ b/Source/MyProject/Private/VerifierTextBlock.cpp @@ -1,5 +1,12 @@ // Fill out your copyright notice in the Description page of Project Settings. - #include "VerifierTextBlock.h" +void UVerifierTextBlock::NativeOnInitialized() { + if (destInput != nullptr) { + destInput->OnMagicFloatsMangled.BindUObject( + this, + &UVerifierTextBlock::verifyFloats + ); + } +} diff --git a/Source/MyProject/Public/MagicFloatInput.h b/Source/MyProject/Public/MagicFloatInput.h index 76495c0..7ac7c17 100644 --- a/Source/MyProject/Public/MagicFloatInput.h +++ b/Source/MyProject/Public/MagicFloatInput.h @@ -7,6 +7,8 @@ #include #include "MagicFloatInput.generated.h" +DECLARE_DELEGATE(FOnMagicFloatsMangledDelegate); + /** * */ @@ -22,4 +24,12 @@ class MYPROJECT_API UMagicFloatInput : public UEditableTextBox { UPROPERTY(EditAnywhere) UTextBlock * sourceInput; + + UPROPERTY(EditAnywhere) + UTextBlock * myVerifier; + + UFUNCTION() + void HandleMagicFloatsMangledEvent(); + + FOnMagicFloatsMangledDelegate OnMagicFloatsMangled; }; diff --git a/Source/MyProject/Public/VerifierTextBlock.h b/Source/MyProject/Public/VerifierTextBlock.h index 2bc9569..35b55c2 100644 --- a/Source/MyProject/Public/VerifierTextBlock.h +++ b/Source/MyProject/Public/VerifierTextBlock.h @@ -4,14 +4,24 @@ #include "CoreMinimal.h" #include "Components/TextBlock.h" +#include "MagicFloatInput.h" #include "VerifierTextBlock.generated.h" /** - * + * */ UCLASS() -class MYPROJECT_API UVerifierTextBlock : public UTextBlock -{ - GENERATED_BODY() - +class MYPROJECT_API UVerifierTextBlock : public UTextBlock { + + GENERATED_BODY() + + UPROPERTY(EditAnywhere) + UTextBlock * sourceInput; + + UPROPERTY(EditAnywhere) + UMagicFloatInput * destInput; + + void verifyFloats(); + + void BeginPlay() override; };