#include <QtGui>
+#include "abstractbuffercontainer.h"
#include "types.h"
-class ChatLine;
+class ChatLineOld;
class AbstractUiMsg;
//!\brief Scroll area showing part of the chat messages for a given buffer.
* Because we use this as a custom widget in Qt Designer, we cannot use a constructor that takes custom
* parameters. Instead, it is mandatory to call init() before using this widget.
*/
-class ChatWidget : public QAbstractScrollArea {
+class ChatWidget : public QAbstractScrollArea, public AbstractChatView {
Q_OBJECT
public:
- ChatWidget(QWidget *parent = 0);
+ ChatWidget(BufferId, QWidget *parent = 0);
~ChatWidget();
void init(BufferId id);
void prependMsg(AbstractUiMsg *);
void appendMsg(AbstractUiMsg *);
- void prependChatLine(ChatLine *);
- void appendChatLine(ChatLine *);
- void prependChatLines(QList<ChatLine *>);
- void appendChatLines(QList<ChatLine *>);
- void setContents(QList<ChatLine *>);
+ void prependChatLine(ChatLineOld *);
+ void appendChatLine(ChatLineOld *);
+ void prependChatLines(QList<ChatLineOld *>);
+ void appendChatLines(QList<ChatLineOld *>);
+ void setContents(const QList<AbstractUiMsg *> &);
protected:
virtual void resizeEvent(QResizeEvent *event);
void scrollBarValChanged(int);
void ensureVisible(int line);
void handleScrollTimer();
+ void viewportChanged(int newPos);
private:
BufferId bufferId;
int bottomLine, bottomLineOffset;
- QList<ChatLine *> lines;
+ QList<ChatLineOld *> lines;
QList<qreal> ycoords;
QTimer *scrollTimer;
QPoint pointerPosition;
QString selectionToString();
void handleMouseMoveEvent(const QPoint &pos);
+ MsgId lastBacklogOffset;
+ int lastBacklogSize;
};
#endif