diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-02-10 11:14:50 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-02-10 11:14:50 (GMT) |
commit | 4d0c1d3b8a40cb74cfb30ed27a294afaa6ced56f (patch) | |
tree | 63ce3df61e88f27ed183d373e3496d8f56af7fb1 /Swift/Controllers/Chat/MUCController.h | |
parent | 936f7ff9b80aca95040301a4b3cfcd2a248e3334 (diff) | |
download | swift-contrib-4d0c1d3b8a40cb74cfb30ed27a294afaa6ced56f.zip swift-contrib-4d0c1d3b8a40cb74cfb30ed27a294afaa6ced56f.tar.bz2 |
Move the Chat stuff in Controllers into Chat folder.
It was starting to get a bit unwieldly in Controllers/
Diffstat (limited to 'Swift/Controllers/Chat/MUCController.h')
-rw-r--r-- | Swift/Controllers/Chat/MUCController.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Swift/Controllers/Chat/MUCController.h b/Swift/Controllers/Chat/MUCController.h new file mode 100644 index 0000000..bafe3db --- /dev/null +++ b/Swift/Controllers/Chat/MUCController.h @@ -0,0 +1,48 @@ +#ifndef SWIFTEN_MUCController_H +#define SWIFTEN_MUCController_H + +#include <boost/shared_ptr.hpp> + +#include "Swiften/Base/String.h" +#include "Swift/Controllers/Chat/ChatControllerBase.h" +#include "Swiften/Elements/Message.h" +#include "Swiften/Elements/DiscoInfo.h" +#include "Swiften/JID/JID.h" +#include "Swiften/MUC/MUC.h" +#include "Swiften/MUC/MUCOccupant.h" + +namespace Swift { + class StanzaChannel; + class IQRouter; + class ChatWindow; + class ChatWindowFactory; + class Roster; + class TreeWidgetFactory; + class AvatarManager; + + class MUCController : public ChatControllerBase { + public: + MUCController(const JID& self, const JID &muc, const String &nick, StanzaChannel* stanzaChannel, PresenceSender* presenceSender, IQRouter* iqRouter, ChatWindowFactory* chatWindowFactory, TreeWidgetFactory *treeWidgetFactory, PresenceOracle* presenceOracle, AvatarManager* avatarManager); + ~MUCController(); + + protected: + void preSendMessageRequest(boost::shared_ptr<Message> message); + bool isIncomingMessageFromMe(boost::shared_ptr<Message> message); + String senderDisplayNameFromMessage(const JID& from); + + private: + void handleWindowClosed(); + void handleAvatarChanged(const JID& jid, const String&); + void handleOccupantJoined(const MUCOccupant& occupant); + void handleOccupantLeft(const MUCOccupant& occupant, MUC::LeavingType type, const String& reason); + void handleOccupantPresenceChange(boost::shared_ptr<Presence> presence); + + private: + MUC *muc_; + String nick_; + TreeWidgetFactory *treeWidgetFactory_; + Roster *roster_; + }; +} +#endif + |