00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef IRC_BUFFER_H
00016 #define IRC_BUFFER_H
00017
00018 #include <ircglobal.h>
00019 #include <QStringList>
00020 #include <QObject>
00021
00022 namespace Irc
00023 {
00024 class Session;
00025 class BufferPrivate;
00026
00027 class IRC_EXPORT Buffer : public QObject
00028 {
00029 Q_OBJECT
00030 Q_PROPERTY(QString receiver READ receiver)
00031 Q_PROPERTY(QString topic READ topic)
00032 Q_PROPERTY(QStringList names READ names)
00033
00034 public:
00035 ~Buffer();
00036
00037 Session* session() const;
00038
00039 QString receiver() const;
00040 QString topic() const;
00041 QStringList names() const;
00042 QString modes(const QString& name) const;
00043 QString visualMode(const QString& name) const;
00044
00045 public Q_SLOTS:
00046 bool message(const QString& message);
00047 bool notice(const QString& notice);
00048 bool ctcpAction(const QString& action);
00049
00050 Q_SIGNALS:
00051 void receiverChanged(const QString& receiver);
00052 void motdReceived(const QString& motd);
00053 void joined(const QString& origin);
00054 void parted(const QString& origin, const QString& message);
00055 void quit(const QString& origin, const QString& message);
00056 void nickChanged(const QString& origin, const QString& nick);
00057 void modeChanged(const QString& origin, const QString& mode, const QString& args);
00058 void topicChanged(const QString& origin, const QString& topic);
00059 void invited(const QString& origin, const QString& receiver, const QString& channel);
00060 void kicked(const QString& origin, const QString& nick, const QString& message);
00061 void messageReceived(const QString& origin, const QString& message);
00062 void noticeReceived(const QString& origin, const QString& notice);
00063 void ctcpRequestReceived(const QString& origin, const QString& request);
00064 void ctcpReplyReceived(const QString& origin, const QString& reply);
00065 void ctcpActionReceived(const QString& origin, const QString& action);
00066 void numericMessageReceived(const QString& origin, uint code, const QStringList& params);
00067 void unknownMessageReceived(const QString& origin, const QStringList& params);
00068
00069 protected:
00070 Buffer(const QString& receiver, Session* parent = 0);
00071 Buffer(BufferPrivate& dd, const QString& receiver, Session* parent = 0);
00072 BufferPrivate* const d_ptr;
00073
00074 private:
00075 Q_DECLARE_PRIVATE(Buffer)
00076 Q_DISABLE_COPY(Buffer)
00077 friend class SessionPrivate;
00078 friend class Session;
00079 };
00080 }
00081
00082 #ifndef QT_NO_DEBUG_STREAM
00083 IRC_EXPORT QDebug operator<<(QDebug debug, const Irc::Buffer* buffer);
00084 #endif // QT_NO_DEBUG_STREAM
00085
00086 #endif // IRC_BUFFER_H