From 916d188d5bcb400756c5cf248d9d31c2e0e73219 Mon Sep 17 00:00:00 2001 From: wonkyhonky2024 Date: Fri, 9 May 2025 23:18:45 +0100 Subject: [PATCH] this was probably a bad idea because they need to be actors for events to work --- Source/MyProject/Private/MagicFloatInput.cpp | 5 +++++ .../MyProject/Private/VerifierTextBlock.cpp | 9 ++++++++- Source/MyProject/Public/MagicFloatInput.h | 10 ++++++++++ Source/MyProject/Public/VerifierTextBlock.h | 20 ++++++++++++++----- 4 files changed, 38 insertions(+), 6 deletions(-) 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; };