summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-06-01 08:48:42 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-06-01 09:24:28 (GMT)
commit2812bddd81f8a1b804c7460f4e14cd0aa393d129 (patch)
treed46294f35150c4f0f43deaf2d31fceaf945ae715 /Swiften/Controllers/RosterController.h
downloadswift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.zip
swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.tar.bz2
Import.
Diffstat (limited to 'Swiften/Controllers/RosterController.h')
-rw-r--r--Swiften/Controllers/RosterController.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/Swiften/Controllers/RosterController.h b/Swiften/Controllers/RosterController.h
new file mode 100644
index 0000000..945b068
--- /dev/null
+++ b/Swiften/Controllers/RosterController.h
@@ -0,0 +1,48 @@
+#ifndef SWIFTEN_RosterController_H
+#define SWIFTEN_RosterController_H
+
+#include "Swiften/JID/JID.h"
+#include "Swiften/Base/String.h"
+#include "Swiften/Elements/Presence.h"
+#include "Swiften/Roster/UserRosterAction.h"
+
+#include <boost/signals.hpp>
+#include <boost/shared_ptr.hpp>
+
+namespace Swift {
+ class IQRouter;
+ class Roster;
+ class XMPPRoster;
+ class MainWindow;
+ class MainWindowFactory;
+ class TreeWidgetFactory;
+ class OfflineRosterFilter;
+
+ class RosterController {
+ public:
+ RosterController(boost::shared_ptr<XMPPRoster> xmppRoster, MainWindowFactory *mainWindowFactory, TreeWidgetFactory *treeWidgetFactory);
+ ~RosterController();
+ void showRosterWindow();
+ MainWindow* getWindow() {return mainWindow_;};
+ boost::signal<void (const JID&)> onStartChatRequest;
+ boost::signal<void (const JID&, const String&)> onJoinMUCRequest;
+ boost::signal<void (StatusShow::Type, const String&)> onChangeStatusRequest;
+ void handleIncomingPresence(boost::shared_ptr<Presence> presence);
+
+ private:
+ void handleOnJIDAdded(const JID &jid);
+ void handleStartChatRequest(const JID& contact);
+ void handleJoinMUCRequest(const JID &muc, const String &nick);
+ void handleUserAction(boost::shared_ptr<UserRosterAction> action);
+ void handleChangeStatusRequest(StatusShow::Type show, const String &statusText);
+ void handleShowOfflineToggled(bool state);
+ boost::shared_ptr<XMPPRoster> xmppRoster_;
+ MainWindowFactory* mainWindowFactory_;
+ TreeWidgetFactory* treeWidgetFactory_;
+ MainWindow* mainWindow_;
+ Roster* roster_;
+ OfflineRosterFilter* offlineFilter_;
+ };
+}
+#endif
+