// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #if WITH_TENCENTSDK #if WITH_TENCENT_RAIL_SDK #include "Interfaces/OnlineExternalUIInterface.h" class FOnlineSubsystemTencent; /** * Implementation for the Tencent/Rail external UIs */ class FOnlineExternalUITencent : public IOnlineExternalUI { PACKAGE_SCOPE: FOnlineExternalUITencent() = delete; /** * Constructor * @param InSubsystem The owner of this external UI interface. */ FOnlineExternalUITencent(FOnlineSubsystemTencent* InSubsystem) : TencentSubsystem(InSubsystem) { } public: /** * Destructor. */ virtual ~FOnlineExternalUITencent() { } //~ Begin IOnlineExternalUI interface virtual bool ShowLoginUI(const int ControllerIndex, bool bShowOnlineOnly, bool bShowSkipButton, const FOnLoginUIClosedDelegate& Delegate = FOnLoginUIClosedDelegate()) override; virtual bool ShowAccountCreationUI(const int ControllerIndex, const FOnAccountCreationUIClosedDelegate& Delegate = FOnAccountCreationUIClosedDelegate()) override { /** NYI */ return false; } virtual bool ShowFriendsUI(int32 LocalUserNum) override; virtual bool ShowInviteUI(int32 LocalUserNum, FName SessionName = NAME_GameSession) override; virtual bool ShowAchievementsUI(int32 LocalUserNum) override; virtual bool ShowLeaderboardUI(const FString& LeaderboardName) override; virtual bool ShowWebURL(const FString& Url, const FShowWebUrlParams& ShowParams, const FOnShowWebUrlClosedDelegate& Delegate = FOnShowWebUrlClosedDelegate()) override; virtual bool CloseWebURL() override; virtual bool ShowProfileUI(const FUniqueNetId& Requestor, const FUniqueNetId& Requestee, const FOnProfileUIClosedDelegate& Delegate = FOnProfileUIClosedDelegate()) override; virtual bool ShowAccountUpgradeUI(const FUniqueNetId& UniqueId) override; virtual bool ShowStoreUI(int32 LocalUserNum, const FShowStoreParams& ShowParams, const FOnShowStoreUIClosedDelegate& Delegate = FOnShowStoreUIClosedDelegate()) override; virtual bool ShowSendMessageUI(int32 LocalUserNum, const FShowSendMessageParams& ShowParams, const FOnShowSendMessageUIClosedDelegate& Delegate = FOnShowSendMessageUIClosedDelegate()) override; //~ End IOnlineExternalUI interface private: FOnlineSubsystemTencent* TencentSubsystem; }; typedef TSharedPtr FOnlineExternalUITencentPtr; #endif // WITH_TENCENT_RAIL_SDK #endif // WITH_TENCENTSDK