October3d55/Matain/ViveOpenXR/Source/ViveOpenXREditor/Private/ViveOpenXREditor.cpp

51 lines
1.7 KiB
C++
Raw Normal View History

2025-03-10 09:43:27 +08:00
// Copyright HTC Corporation. All Rights Reserved.
#include "ViveOpenXRRuntimeSettings.h"
#include "Modules/ModuleInterface.h"
#include "ISettingsModule.h"
#include "Modules/ModuleManager.h"
#include "PropertyEditorModule.h"
#include "ViveOpenXRSettingsCustomization.h"
#define LOCTEXT_NAMESPACE "FViveOpenXREditorModule"
class FViveOpenXREditorModule
: public IModuleInterface
{
virtual void StartupModule() override
{
// register settings detail panel customization
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropertyModule.RegisterCustomClassLayout(
UViveOpenXRRuntimeSettings::StaticClass()->GetFName(),
FOnGetDetailCustomizationInstance::CreateStatic(&FViveOpenXRSettingsCustomization::MakeInstance)
);
PropertyModule.NotifyCustomizationModuleChanged();
ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings");
if (SettingsModule != nullptr)
{
SettingsModule->RegisterSettings("Project", "Plugins", "ViveOpenXR",
LOCTEXT("RuntimeSettingsName", "Vive OpenXR"),
LOCTEXT("RuntimeSettingsDescription", "Project settings for Vive OpenXR plugins."),
GetMutableDefault<UViveOpenXRRuntimeSettings>()
);
}
}
virtual void ShutdownModule() override
{
ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings");
if (SettingsModule != nullptr)
{
SettingsModule->UnregisterSettings("Project", "Plugins", "ViveOpenXR");
}
}
};
IMPLEMENT_MODULE(FViveOpenXREditorModule, ViveOpenXREditor);
#undef LOCTEXT_NAMESPACE