// Copyright Epic Games, Inc. All Rights Reserved. #include "CoreMinimal.h" #include "GenericMacTargetPlatformControls.h" #include "Modules/ModuleManager.h" #include "Interfaces/ITargetPlatformControlsModule.h" #include "Modules/ModuleManager.h" #include "IMacTargetPlatformSettingsModule.h" #define LOCTEXT_NAMESPACE "FMacTargetPlatformControlsModule" /** * Module for Mac as a target platform controls */ class FMacTargetPlatformControlsModule : public ITargetPlatformControlsModule { public: virtual void GetTargetPlatformControls(TArray& TargetPlatforms, FName& PlatformSettingsModuleName) override { TMap PlatformNameToPlatformSettings; IMacTargetPlatformSettingsModule* ModuleSettings = FModuleManager::GetModulePtr(PlatformSettingsModuleName); if (ModuleSettings != nullptr) { TMap OutMap; ModuleSettings->GetPlatformSettingsMaps(OutMap); ITargetPlatformControls* GameTP = new TGenericMacTargetPlatformControls(OutMap[FMacPlatformProperties::PlatformName()]); ITargetPlatformControls* EditorTP = new TGenericMacTargetPlatformControls(OutMap[FMacPlatformProperties::PlatformName()]); ITargetPlatformControls* ServerTP = new TGenericMacTargetPlatformControls(OutMap[FMacPlatformProperties::PlatformName()]); ITargetPlatformControls* ClientTP = new TGenericMacTargetPlatformControls(OutMap[FMacPlatformProperties::PlatformName()]); TargetPlatforms.Add(GameTP); TargetPlatforms.Add(EditorTP); TargetPlatforms.Add(ServerTP); TargetPlatforms.Add(ClientTP); } } public: // Begin IModuleInterface interface virtual void StartupModule() override { } virtual void ShutdownModule() override { } // End IModuleInterface interface }; #undef LOCTEXT_NAMESPACE IMPLEMENT_MODULE( FMacTargetPlatformControlsModule, MacTargetPlatformControls);