1 /*
2     SPDX-FileCopyrightText: 2007 Paolo Capriotti <p.capriotti@gmail.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef CHATWIDGET_H
8 #define CHATWIDGET_H
9 
10 #include <QWidget>
11 #include <QVector>
12 
13 class QTextEdit;
14 class QLineEdit;
15 class QEvent;
16 class Entity;
17 
18 class ChatWidget : public QWidget
19 {
20 Q_OBJECT
21     QTextEdit* m_chat;
22     QLineEdit* m_input;
23 
24     int m_current;
25     QVector<QString> m_history;
26     QString m_nick;
27 
28     void setHistoryText(int index);
29 public:
30     explicit ChatWidget(QWidget* parent = nullptr);
31 
32     QSize sizeHint() const override;
33     void bindTo(Entity* entity);
34 
35     void setNick(const QString& nick);
36     void display(const QString& nick, const QString& message);
37     void display(const QString& message);
38 protected:
39     bool eventFilter(QObject*, QEvent* e) override;
40     void resizeEvent(QResizeEvent*) override;
41 Q_SIGNALS:
42     void message(const QString& text);
43 private Q_SLOTS:
44     void sendLine();
45 };
46 
47 #endif // CHATWIDGET_H
48