Lots of additions again. Working on implementing commands and prettifying the output.
[quassel.git] / gui / channelwidget.h
index cecde30..e1d2f2e 100644 (file)
 #ifndef _CHANNELWIDGET_H_
 #define _CHANNELWIDGET_H_
 
-#include "ui_channelwidget-old.h"
+#include "ui_channelwidget.h"
+#include "ui_ircwidget.h"
+
+#include "global.h"
+#include "message.h"
 
 class ChannelWidget : public QWidget {
   Q_OBJECT
 
   public:
-    ChannelWidget(QWidget *parent = 0);
+    ChannelWidget(QString netname, QString bufname, QString ownNick, QWidget *parent = 0);
 
+    QString bufferName() { return _bufferName; }
+    QString networkName() { return _networkName; }
   signals:
-    void requestConnect(QString, quint16);
-    void inputLine(QString);
-    
+    void sendInput(QString, QString, QString);
+
+  public slots:
+    void recvMessage(Message);
+    void recvStatusMsg(QString msg);
+    void setTopic(QString);
+    void setNicks(QStringList);
+    void addNick(QString nick, VarMap props);
+    void removeNick(QString nick);
+    void updateNick(QString nick, VarMap props);
+    void setOwnNick(QString nick);
+
+
   private slots:
     void enterPressed();
-    void lineReceived(QString);
+    void updateNickList();
 
   private:
     Ui::ChannelWidget ui;
 
+    QColor stdCol, errorCol, noticeCol, joinCol, quitCol, partCol, serverCol;
+    QString _networkName;
+    QString _bufferName;
+    VarMap nicks;
 };
 
+/** Temporary widget for displaying a set of ChannelWidgets. */
+class IrcWidget : public QWidget {
+  Q_OBJECT
+
+  public:
+    IrcWidget(QWidget *parent = 0);
+
+  public slots:
+    void recvMessage(QString network, QString buffer, Message message);
+    void recvStatusMsg(QString network, QString message);
+    void setTopic(QString, QString, QString);
+    void setNicks(QString, QString, QStringList);
+    void addNick(QString net, QString nick, VarMap props);
+    void removeNick(QString net, QString nick);
+    void updateNick(QString net, QString nick, VarMap props);
+    void setOwnNick(QString net, QString nick);
+
+  signals:
+    void sendInput(QString network, QString buffer, QString message);
+
+  private slots:
+    void userInput(QString, QString, QString);
+
+  private:
+    Ui::IrcWidget ui;
+    QHash<QString, ChannelWidget *> buffers;
+    VarMap nicks;
+    QString ownNick;
+
+    ChannelWidget * getBuffer(QString net, QString buf);
+};
 
 #endif