2014-12-07 19:09:38 -05:00
|
|
|
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
2014-11-03 15:47:28 -05:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2014-11-19 05:28:05 -05:00
|
|
|
#include "FriendViewModel.h"
|
|
|
|
|
|
2014-11-03 15:47:28 -05:00
|
|
|
class FChatItemViewModel;
|
|
|
|
|
namespace EChatMessageType
|
|
|
|
|
{
|
|
|
|
|
enum Type : uint8;
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-14 08:05:34 -05:00
|
|
|
struct FSelectedFriend
|
|
|
|
|
{
|
|
|
|
|
TSharedPtr<FUniqueNetId> UserID;
|
2015-03-13 08:26:18 -04:00
|
|
|
FText DisplayName;
|
2014-11-19 05:28:05 -05:00
|
|
|
EChatMessageType::Type MessageType;
|
|
|
|
|
TSharedPtr<FFriendViewModel> ViewModel;
|
2014-12-03 10:21:53 -05:00
|
|
|
TSharedPtr<FChatItemViewModel> SelectedMessage;
|
2014-11-14 08:05:34 -05:00
|
|
|
};
|
|
|
|
|
|
2014-11-03 15:47:28 -05:00
|
|
|
class FChatViewModel
|
|
|
|
|
: public TSharedFromThis<FChatViewModel>
|
|
|
|
|
{
|
|
|
|
|
public:
|
2015-03-13 08:26:18 -04:00
|
|
|
virtual TArray<TSharedRef<FChatItemViewModel > >& GetMessages() = 0;
|
2014-11-06 15:17:11 -05:00
|
|
|
virtual FReply HandleSelectionChanged(TSharedRef<FChatItemViewModel> ItemSelected) = 0;
|
2014-11-03 15:47:28 -05:00
|
|
|
virtual FText GetViewGroupText() const = 0;
|
|
|
|
|
virtual FText GetChatGroupText() const = 0;
|
2015-02-10 06:44:35 -05:00
|
|
|
virtual EVisibility GetFriendRequestVisibility() const = 0;
|
2014-11-20 04:05:40 -05:00
|
|
|
virtual EVisibility GetInviteToGameVisibility() const = 0;
|
2015-02-10 06:44:35 -05:00
|
|
|
virtual EVisibility GetOpenWhisperVisibility() const = 0;
|
2015-03-13 08:26:18 -04:00
|
|
|
virtual EVisibility GetAcceptFriendRequestVisibility() const = 0;
|
|
|
|
|
virtual EVisibility GetIgnoreFriendRequestVisibility() const = 0;
|
|
|
|
|
virtual EVisibility GetCancelFriendRequestVisibility() const = 0;
|
2014-11-19 05:28:05 -05:00
|
|
|
virtual void EnumerateFriendOptions(TArray<EFriendActionType::Type>& OUTActionList) = 0;
|
|
|
|
|
virtual void PerformFriendAction(EFriendActionType::Type ActionType) = 0;
|
2014-11-20 04:05:40 -05:00
|
|
|
virtual void CancelAction() = 0;
|
2014-11-14 08:05:34 -05:00
|
|
|
virtual void SetChatChannel(const EChatMessageType::Type NewOption) = 0;
|
|
|
|
|
virtual void SetWhisperChannel(const TSharedPtr<FSelectedFriend> InFriend) = 0;
|
2014-11-03 15:47:28 -05:00
|
|
|
virtual void SetViewChannel(const EChatMessageType::Type NewOption) = 0;
|
2015-01-16 09:08:08 -05:00
|
|
|
virtual const EChatMessageType::Type GetChatChannel() const = 0;
|
2015-02-10 06:44:35 -05:00
|
|
|
virtual bool IsChatChannelValid() const = 0;
|
2015-03-13 08:26:18 -04:00
|
|
|
virtual bool IsChatConnected() const = 0;
|
|
|
|
|
virtual FText GetChatDisconnectText() const = 0;
|
2014-12-03 10:21:53 -05:00
|
|
|
virtual void SetChannelUserClicked(const TSharedRef<FChatItemViewModel> ChatItemSelected) = 0;
|
2014-11-19 05:28:05 -05:00
|
|
|
virtual bool SendMessage(const FText NewMessage) = 0;
|
2014-11-06 15:17:11 -05:00
|
|
|
virtual EChatMessageType::Type GetChatChannelType() const = 0;
|
2014-11-14 08:05:34 -05:00
|
|
|
virtual const TArray<TSharedPtr<FSelectedFriend> >& GetRecentOptions() const = 0;
|
2015-02-10 06:44:35 -05:00
|
|
|
virtual void SetDisplayGlobalChat(bool bAllow) = 0;
|
|
|
|
|
virtual bool IsDisplayingGlobalChat() const = 0;
|
2014-11-13 16:15:33 -05:00
|
|
|
virtual bool IsGlobalChatEnabled() const = 0;
|
2014-11-19 05:28:05 -05:00
|
|
|
virtual bool HasValidSelectedFriend() const = 0;
|
|
|
|
|
virtual bool HasFriendChatAction() const = 0;
|
2015-01-16 09:08:08 -05:00
|
|
|
virtual bool HasActionPending() const = 0;
|
|
|
|
|
virtual void SetInGame(bool bInGameSetting) = 0;
|
2015-02-10 06:44:35 -05:00
|
|
|
virtual void LockChatChannel(bool bLocked) = 0;
|
2015-03-13 08:26:18 -04:00
|
|
|
virtual bool IsChatChannelLocked() const = 0;
|
2015-02-10 06:44:35 -05:00
|
|
|
virtual void EnableGlobalChat(bool bEnable) = 0;
|
2015-01-16 09:08:08 -05:00
|
|
|
DECLARE_EVENT(FChatViewModel, FChatListUpdated)
|
|
|
|
|
virtual FChatListUpdated& OnChatListUpdated() = 0;
|
2014-11-03 15:47:28 -05:00
|
|
|
|
|
|
|
|
virtual ~FChatViewModel() {}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Creates the implementation for an ChatViewModel.
|
|
|
|
|
*
|
|
|
|
|
* @return the newly created ChatViewModel implementation.
|
|
|
|
|
*/
|
2014-11-06 15:17:11 -05:00
|
|
|
FACTORY(TSharedRef< FChatViewModel >, FChatViewModel,
|
|
|
|
|
const TSharedRef<class FFriendsMessageManager>& MessageManager);
|