From 3407b947319dbc025fb28e8779d92f6c0504bb4b Mon Sep 17 00:00:00 2001 From: Norman Lansing Date: Sun, 15 Mar 2026 17:02:22 -0400 Subject: [PATCH] Lesson 58 - HTTP Request Manager --- .../APITest/UI/WBP_APITestOverlay.uasset | Bin 29605 -> 28043 bytes .../Private/UI/API_Test/APITestManager.cpp | 9 +++++++ .../Private/UI/API_Test/APITestOverlay.cpp | 19 ++++++++++++++- .../Private/UI/HTTP/HTTPRequestManager.cpp | 4 +++ .../Public/UI/API_Test/APITestManager.h | 21 ++++++++++++++++ .../Public/UI/API_Test/APITestOverlay.h | 23 ++++++++++++++++++ .../Public/UI/HTTP/HTTPRequestManager.h | 18 ++++++++++++++ 7 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp create mode 100644 Source/DedicatedServers/Private/UI/HTTP/HTTPRequestManager.cpp create mode 100644 Source/DedicatedServers/Public/UI/API_Test/APITestManager.h create mode 100644 Source/DedicatedServers/Public/UI/HTTP/HTTPRequestManager.h diff --git a/Content/DedicatedServers/APITest/UI/WBP_APITestOverlay.uasset b/Content/DedicatedServers/APITest/UI/WBP_APITestOverlay.uasset index 3b9de85db0704fad159c894eaa40c8e32c3bb8d9..b102b3e2730294a9ef274d0941d30a795086123f 100644 GIT binary patch delta 6388 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 diff --git a/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp b/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp new file mode 100644 index 00000000..afd5c26f --- /dev/null +++ b/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp @@ -0,0 +1,9 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "UI/API_Test/APITestManager.h" + +void UAPITestManager::ListFleetsButtonClicked() +{ + GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, "List Fleets Button Clicked"); +} diff --git a/Source/DedicatedServers/Private/UI/API_Test/APITestOverlay.cpp b/Source/DedicatedServers/Private/UI/API_Test/APITestOverlay.cpp index 594c4614..1b36dad4 100644 --- a/Source/DedicatedServers/Private/UI/API_Test/APITestOverlay.cpp +++ b/Source/DedicatedServers/Private/UI/API_Test/APITestOverlay.cpp @@ -1,4 +1,21 @@ // Fill out your copyright notice in the Description page of Project Settings. - #include "UI/API_Test/APITestOverlay.h" +#include "UI/API_Test/APITestManager.h" + + +#include "Components/Button.h" +#include "UI/API/ListFleets/ListFleetsBox.h" + + +void UAPITestOverlay::NativeConstruct() +{ + Super::NativeConstruct(); + + check(APITestManagerClass); + APITestManager = NewObject(this, APITestManagerClass); + + check (ListFleetsBox) + check (ListFleetsBox->Button_ListFleets) + ListFleetsBox->Button_ListFleets->OnClicked.AddDynamic(APITestManager, &UAPITestManager::ListFleetsButtonClicked); +} diff --git a/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestManager.cpp b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestManager.cpp new file mode 100644 index 00000000..2b3deca6 --- /dev/null +++ b/Source/DedicatedServers/Private/UI/HTTP/HTTPRequestManager.cpp @@ -0,0 +1,4 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "UI/HTTP/HTTPRequestManager.h" diff --git a/Source/DedicatedServers/Public/UI/API_Test/APITestManager.h b/Source/DedicatedServers/Public/UI/API_Test/APITestManager.h new file mode 100644 index 00000000..3e473400 --- /dev/null +++ b/Source/DedicatedServers/Public/UI/API_Test/APITestManager.h @@ -0,0 +1,21 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "UI/HTTP/HTTPRequestManager.h" +#include "APITestManager.generated.h" + +/** + * + */ +UCLASS() +class DEDICATEDSERVERS_API UAPITestManager : public UHTTPRequestManager +{ + GENERATED_BODY() + +public: + + UFUNCTION() + void ListFleetsButtonClicked(); +}; diff --git a/Source/DedicatedServers/Public/UI/API_Test/APITestOverlay.h b/Source/DedicatedServers/Public/UI/API_Test/APITestOverlay.h index f47f0b42..f6bde917 100644 --- a/Source/DedicatedServers/Public/UI/API_Test/APITestOverlay.h +++ b/Source/DedicatedServers/Public/UI/API_Test/APITestOverlay.h @@ -6,6 +6,8 @@ #include "Blueprint/UserWidget.h" #include "APITestOverlay.generated.h" +class UAPITestManager; +class UListFleetsBox; /** * */ @@ -13,4 +15,25 @@ UCLASS() class DEDICATEDSERVERS_API UAPITestOverlay : public UUserWidget { GENERATED_BODY() + +public: + + UPROPERTY(EditDefaultsOnly) + TSubclassOf APITestManagerClass; + +protected: + virtual void NativeConstruct() override; + +private: + + UPROPERTY(meta = (BindWidget)) + TObjectPtr ListFleetsBox; + + UPROPERTY() + TObjectPtr APITestManager; + + + + + }; diff --git a/Source/DedicatedServers/Public/UI/HTTP/HTTPRequestManager.h b/Source/DedicatedServers/Public/UI/HTTP/HTTPRequestManager.h new file mode 100644 index 00000000..aea59058 --- /dev/null +++ b/Source/DedicatedServers/Public/UI/HTTP/HTTPRequestManager.h @@ -0,0 +1,18 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Object.h" +#include "HTTPRequestManager.generated.h" + +/** + * + */ +UCLASS(Blueprintable) +class DEDICATEDSERVERS_API UHTTPRequestManager : public UObject +{ + GENERATED_BODY() + + +};