// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Modules/ModuleInterface.h" #include "Modules/ModuleManager.h" class IWebBrowserSingleton; /** * WebBrowser initialization settings, can be used to override default init behaviors. */ struct FWebBrowserInitSettings { public: /** * Default constructor. Initializes all members with default behavior values. */ WEBBROWSER_API FWebBrowserInitSettings(); // The string which is appended to the browser's user-agent value. FString ProductVersion; }; /** * WebBrowserModule interface */ class IWebBrowserModule : public IModuleInterface { public: /** * Get or load the Web Browser Module * * @return The loaded module */ static inline IWebBrowserModule& Get() { return FModuleManager::LoadModuleChecked< IWebBrowserModule >("WebBrowser"); } /** * Check whether the module has already been loaded * * @return True if the module is loaded */ static inline bool IsAvailable() { return FModuleManager::Get().IsModuleLoaded("WebBrowser"); } /** * Customize initialization settings. You must call this before the first GetSingleton call, in order to override init settings. * * @param WebBrowserInitSettings The custom settings. * @return true if the settings were used to initialize the singleton. False if the call was ignored due to singleton already existing. */ virtual bool CustomInitialize(const FWebBrowserInitSettings& WebBrowserInitSettings) = 0; /** * Get the Web Browser Singleton * * @return The Web Browser Singleton */ virtual IWebBrowserSingleton* GetSingleton() = 0; /** * Check whether the web module loaded its requirements successfully * * @return True if the module load worked */ virtual bool IsWebModuleAvailable() const = 0; };