Files
Unreal-CommonTime/Source/CommonTime/Private/CommonTimeModule.cpp
2023-10-28 02:46:42 +02:00

46 lines
1.4 KiB
C++

// Copyright 2023 MrRobin. All Rights Reserved.
#include "CommonTimeModule.h"
#include "Modules/ModuleManager.h"
#include "DetailCustomizations/MyDateTimeDetailCustomization.h"
#include "DetailCustomizations/MyTimespanDetailCustomization.h"
DEFINE_LOG_CATEGORY(LogCommonTime);
class FCommonTimeModule : public IModuleInterface
{
public:
void StartupModule() override
{
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>(TEXT("PropertyEditor"));
PropertyModule.RegisterCustomPropertyTypeLayout(
TEXT("Timespan"),
FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FMyTimespanDetailCustomization::MakeInstance)
);
PropertyModule.RegisterCustomPropertyTypeLayout(
TEXT("DateTime"),
FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FMyDateTimeDetailCustomization::MakeInstance)
);
PropertyModule.NotifyCustomizationModuleChanged();
}
void ShutdownModule() override
{
if (FModuleManager::Get().IsModuleLoaded(TEXT("PropertyEditor")))
{
FPropertyEditorModule& PropertyModule = FModuleManager::GetModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropertyModule.UnregisterCustomPropertyTypeLayout(TEXT("Timespan"));
PropertyModule.UnregisterCustomPropertyTypeLayout(TEXT("DateTime"));
PropertyModule.NotifyCustomizationModuleChanged();
}
}
};
IMPLEMENT_MODULE(FCommonTimeModule, CommonTime);