/* * Copyright (c) 2012 Catalin Badea * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include #include #include namespace Swift { class HistoryWindowFactory; class HistoryWindow; class Roster; class RosterItem; class ContactRosterItem; class HistoryController; class NickResolver; class AvatarManager; class HistoryMessage; class HistoryViewController { public: HistoryViewController(const JID& selfJID, UIEventStream* uiEventStream, HistoryController* historyController, NickResolver* nickResolver, AvatarManager* avatarManager, HistoryWindowFactory* historyWindowFactory); ~HistoryViewController(); private: void handleUIEvent(boost::shared_ptr event); void handleSelectedContactChanged(RosterItem* item); void handleNewMessage(const HistoryMessage& message); private: JID selfJID_; UIEventStream* uiEventStream_; HistoryController* historyController_; NickResolver* nickResolver_; AvatarManager* avatarManager_; HistoryWindowFactory* historyWindowFactory_; HistoryWindow* historyWindow_; Roster* roster_; std::set rooms_; std::set contacts_; ContactRosterItem* selectedItem_; }; }