Adding Status and Last server response handled but not tested

This commit is contained in:
2025-07-03 17:28:51 +02:00
parent 2855fa1e98
commit fa5493adcf
43 changed files with 2035 additions and 379 deletions

View File

@ -0,0 +1,31 @@
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"
DTFLUXAPISTATUS_API DECLARE_LOG_CATEGORY_EXTERN(logDTFluxStatus, All, All);
class DTFLUXAPISTATUS_API FDTFluxAPIStatusModule : public IModuleInterface
{
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
#pragma region MenuExtention
void InitMenuExtension();
void AddMenu(FMenuBarBuilder& MenuBarBuilder);
void FillMenu(FMenuBuilder& MenuBuilder);
void OnButtonClicked();
// void OnWsEvent(TEnumAsByte<EDTFluxWsStatus> WsResponseEvent) const;
#pragma endregion
#pragma region EditorTab
void RegisterStatusTab();
TSharedRef<SDockTab> OnSpawnTab(const FSpawnTabArgs& SpawnTabArgs);
private:
static FName StatusTabId;
static FText StatusTabDisplayName;
TSharedPtr<class SDTFluxStatusWidget> StatusWidget;
#pragma endregion
};

View File

@ -0,0 +1,44 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Widgets/SCompoundWidget.h"
/**
*
*/
class UDTFluxNetworkSubsystem;
class SSuperListView;
class DTFLUXAPISTATUS_API SDTFluxStatusWidget : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SDTFluxStatusWidget)
{
}
SLATE_END_ARGS()
void OnOpenSettingsClicked();
FReply OnRaceDatasClicked();
FReply OnTeamListClicked();
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
TAttribute<FText> ConnectionActionButtonText;
FReply OnConnectionActionButtonClicked();
private:
UDTFluxNetworkSubsystem* DTFlux = nullptr;
// // TODO make a struct
FText GetWebSocketStatusText() const;
FText GetWebConnectActionButtonText() const;
FSlateColor GetWebSocketStatusColor() const;
FSlateColor GetWebConnectActionButtonColor() const;
TSharedPtr<STextBlock> WsStatusText;
TSharedPtr<SButton> ConnectionActionButton;
};

View File

@ -0,0 +1,35 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Styling/ISlateStyle.h"
/**
*
*/
class DTFLUXAPISTATUS_API FDTFluxStatusStyle
{
public:
static void RegisterStyle();
static void UnregisterStyle();
static void ReloadTextures();
static const ISlateStyle& Get()
{
return *StyleSet;
}
static const FName& GetStyleSetName()
{
return StyleSet->GetStyleSetName();
}
private:
static TSharedPtr<ISlateStyle> Create();
static TSharedPtr<ISlateStyle> StyleSet;
};