Adding Status and Last server response handled but not tested
This commit is contained in:
111
Source/DTFluxAPIStatus/Private/DTFluxAPIStatusModule.cpp
Normal file
111
Source/DTFluxAPIStatus/Private/DTFluxAPIStatusModule.cpp
Normal 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)
|
||||
Reference in New Issue
Block a user