111 lines
3.0 KiB
C++
111 lines
3.0 KiB
C++
|
|
#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)
|