// Copyright Epic Games, Inc. All Rights Reserved. #include "CoreMinimal.h" #include "Modules/ModuleManager.h" #include "Widgets/DeclarativeSyntaxSupport.h" #include "ISessionManager.h" #include "SAutomationWindow.h" #include "IAutomationWindowModule.h" #include "AutomationWindowStyle.h" /** * Implements the AutomationWindow module. */ class FAutomationWindowModule : public IAutomationWindowModule { public: // IAutomationWindowModule interface virtual TSharedRef CreateAutomationWindow( const IAutomationControllerManagerRef& AutomationController, const TSharedRef& SessionManager ) override { return SNew(SAutomationWindow, AutomationController, SessionManager); } virtual TWeakPtr GetAutomationWindowTab( ) override { return AutomationWindowTabPtr; } virtual FOnAutomationWindowModuleShutdown& OnShutdown( ) override { return ShutdownDelegate; } virtual void SetAutomationWindowTab(TWeakPtr AutomationWindowTab) override { AutomationWindowTabPtr = AutomationWindowTab; } public: // IModuleInterface interface virtual void StartupModule( ) override { FAutomationWindowStyle::Get(); } virtual void ShutdownModule( ) override { FAutomationWindowStyle::Shutdown(); ShutdownDelegate.ExecuteIfBound(); } private: // Holds the DockTab for the AutomationWindow TWeakPtr AutomationWindowTabPtr; // Holds FAutomationWindowModuleShutdownCallback FOnAutomationWindowModuleShutdown ShutdownDelegate; }; IMPLEMENT_MODULE(FAutomationWindowModule, AutomationWindow);