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,111 @@
#include "DTFluxAPIStatusModule.h"
#include "LevelEditor.h"
#include "widgets/DTFluxStatusWidget.h"
#include "widgets/styles/DTFluxStatusStyle.h"
#define LOCTEXT_NAMESPACE "FDTFluxAPIStatusModule"
DEFINE_LOG_CATEGORY(logDTFluxStatus);
FName DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::StatusTabId = "DTFluxStatusTab";
FText DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::StatusTabDisplayName = FText::FromString(TEXT("DTFlux Status"));
void DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::StartupModule()
{
InitMenuExtension();
RegisterStatusTab();
FDTFluxStatusStyle::RegisterStyle();
}
#pragma region MenuExtension
void DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::InitMenuExtension()
{
FLevelEditorModule& LevelEditorModule =
FModuleManager::LoadModuleChecked<FLevelEditorModule>(TEXT("LevelEditor"));
// FDTFluxAPIModule& DTFluxApi =
// FModuleManager::LoadModuleChecked<FDTFluxAPIModule>(TEXT("DTFluxAPI"));
const TSharedPtr<FExtender> MenuExtender = MakeShareable(new FExtender());
MenuExtender->AddMenuBarExtension(
"Help",
EExtensionHook::Before,
nullptr,
FMenuBarExtensionDelegate::CreateRaw(this, &FDTFluxAPIStatusModule::AddMenu)
);
LevelEditorModule.GetMenuExtensibilityManager()->AddExtender(MenuExtender);
}
void DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::AddMenu(FMenuBarBuilder& MenuBarBuilder)
{
MenuBarBuilder.AddPullDownMenu(
FText::FromString("DTFlux"),
FText::FromString("DTFlux API Tools"),
FNewMenuDelegate::CreateRaw(this, &FDTFluxAPIStatusModule::FillMenu)
);
}
void DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::FillMenu(FMenuBuilder& MenuBuilder)
{
MenuBuilder.BeginSection(NAME_None, FText::FromString("DTFlux API"));
MenuBuilder.AddMenuEntry(
FText::FromString("Status"),
FText::FromString("Launch DTFlux Status"),
FSlateIcon(FDTFluxStatusStyle::GetStyleSetName(), "LevelEditor.Tab.Icon"),
FExecuteAction::CreateRaw(this, &FDTFluxAPIStatusModule::OnButtonClicked)
);
MenuBuilder.EndSection();
}
void DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::OnButtonClicked()
{
FGlobalTabmanager::Get()->TryInvokeTab(StatusTabId);
UE_LOG(LogTemp, Log, TEXT("Status Tab Launched"))
}
#pragma endregion EditorTab
#pragma region
void DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::RegisterStatusTab()
{
FTabSpawnerEntry& SpawnerEntry =
FGlobalTabmanager::Get()->RegisterNomadTabSpawner(
StatusTabId,
FOnSpawnTab::CreateRaw(this, &FDTFluxAPIStatusModule::OnSpawnTab)
)
.SetDisplayName(StatusTabDisplayName)
.SetTooltipText(FText::FromString(TEXT("Status of DTFlux API external connections")));
}
TSharedRef<SDockTab> DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::OnSpawnTab(const FSpawnTabArgs& SpawnTabArgs)
{
return
SNew(
SDockTab
)
.TabRole(ETabRole::NomadTab)
// .ShouldAutosize(true)
[
SNew(SDTFluxStatusWidget)
];
}
#pragma endregion
void DTFLUXAPISTATUS_API FDTFluxAPIStatusModule::ShutdownModule()
{
FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(StatusTabId);
FDTFluxStatusStyle::UnregisterStyle();
}
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(FDTFluxAPIStatusModule, DTFluxAPIStatus)