virtual void SendGameInviteNotification(const TSharedPtr<IFriendItem>& Invite, IChatNotificationService::FOnNotificationResponseDelegate ResponceDelegate) override { FString MessageString = FString::Printf(*LOCTEXT("GameInvite", "Game invite from %s").ToString(), *Invite->GetName()); TSharedPtr< FFriendsAndChatMessage > NotificationMessage = MakeShareable(new FFriendsAndChatMessage(MessageString, Invite->GetUniqueID())); NotificationMessage->SetButtonCallback(FOnClicked::CreateSP(this, &FChatNotificationServiceImpl::HandleMessageResponse, NotificationMessage, EResponseType::Response_Accept, ResponceDelegate)); NotificationMessage->SetButtonCallback(FOnClicked::CreateSP(this, &FChatNotificationServiceImpl::HandleMessageResponse, NotificationMessage, EResponseType::Response_Reject, ResponceDelegate)); NotificationMessage->SetButtonDescription(LOCTEXT("JoinGame", "Join Game")); NotificationMessage->SetButtonDescription(LOCTEXT("Reject", "Reject")); NotificationMessage->SetButtonResponseType(EResponseType::Response_Accept); NotificationMessage->SetButtonResponseType(EResponseType::Response_Reject); NotificationMessage->SetButtonStyle(TEXT("FriendsListEmphasisButton")); NotificationMessage->SetButtonStyle(TEXT("FriendsListCriticalButton")); NotificationMessage->SetMessageType(EMessageType::GameInvite); OnSendNotification().Broadcast(NotificationMessage.ToSharedRef()); }
// Called when a message is received for this asynchronous socket instance. virtual void OnMessage(WPARAM sock, LPARAM lParam) { if(GetHandle() != static_cast<SOCKET>(sock)) return; AsyncResult result; result.Error = WSAGETSELECTERROR(lParam); result.Success = result.Error == 0; switch(WSAGETSELECTEVENT(lParam)) { case FD_ACCEPT: OnAcceptNotification(result); break; case FD_CONNECT: OnConnectNotification(result); break; case FD_CLOSE: OnDisconnectNotification(result); break; case FD_OOB: OnOutOfBandDataNotification(result); break; case FD_READ: OnReceiveNotification(result); break; case FD_WRITE: OnSendNotification(result); break; } }
virtual void SendNotification(const FString& InMessage, EMessageType::Type MessageType) override { TSharedPtr< FFriendsAndChatMessage > NotificationMessage = MakeShareable(new FFriendsAndChatMessage(InMessage)); NotificationMessage->SetMessageType(MessageType); OnSendNotification().Broadcast(NotificationMessage.ToSharedRef()); }