mirror of
https://github.com/citra-emu/citra.git
synced 2024-11-16 14:00:04 +00:00
58 lines
1.3 KiB
C
58 lines
1.3 KiB
C
|
// Copyright 2017 Citra Emulator Project
|
||
|
// Licensed under GPLv2 or any later version
|
||
|
// Refer to the license.txt file included.
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <memory>
|
||
|
#include <QDialog>
|
||
|
#include <QSortFilterProxyModel>
|
||
|
#include <QStandardItemModel>
|
||
|
#include <QVariant>
|
||
|
#include "network/network.h"
|
||
|
|
||
|
namespace Ui {
|
||
|
class ChatRoom;
|
||
|
} // namespace Ui
|
||
|
|
||
|
namespace Core {
|
||
|
class AnnounceMultiplayerSession;
|
||
|
}
|
||
|
|
||
|
class ConnectionError;
|
||
|
class ComboBoxProxyModel;
|
||
|
|
||
|
class ChatMessage;
|
||
|
|
||
|
class ChatRoom : public QWidget {
|
||
|
Q_OBJECT
|
||
|
|
||
|
public:
|
||
|
explicit ChatRoom(QWidget* parent);
|
||
|
void SetPlayerList(const Network::RoomMember::MemberList& member_list);
|
||
|
void Clear();
|
||
|
void AppendStatusMessage(const QString& msg);
|
||
|
|
||
|
public slots:
|
||
|
void OnRoomUpdate(const Network::RoomInformation& info);
|
||
|
void OnChatReceive(const Network::ChatEntry&);
|
||
|
void OnSendChat();
|
||
|
void OnChatTextChanged();
|
||
|
void Disable();
|
||
|
void Enable();
|
||
|
|
||
|
signals:
|
||
|
void ChatReceived(const Network::ChatEntry&);
|
||
|
|
||
|
private:
|
||
|
const u32 max_chat_lines = 1000;
|
||
|
void AppendChatMessage(const QString&);
|
||
|
bool ValidateMessage(const std::string&);
|
||
|
QStandardItemModel* player_list;
|
||
|
Ui::ChatRoom* ui;
|
||
|
};
|
||
|
|
||
|
Q_DECLARE_METATYPE(Network::ChatEntry);
|
||
|
Q_DECLARE_METATYPE(Network::RoomInformation);
|
||
|
Q_DECLARE_METATYPE(Network::RoomMember::State);
|