diff options
Diffstat (limited to 'Swift/Controllers/Roster/ContactRosterItem.h')
-rw-r--r-- | Swift/Controllers/Roster/ContactRosterItem.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Swift/Controllers/Roster/ContactRosterItem.h b/Swift/Controllers/Roster/ContactRosterItem.h new file mode 100644 index 0000000..ca9d727 --- /dev/null +++ b/Swift/Controllers/Roster/ContactRosterItem.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2010 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "Swiften/Base/String.h" +#include "Swiften/JID/JID.h" +#include "Swift/Controllers/Roster/RosterItem.h" +#include "Swiften/Elements/StatusShow.h" +#include "Swiften/Elements/Presence.h" + +#include <map> +#include <boost/bind.hpp> +#include "Swiften/Base/boost_bsignals.h" +#include <boost/shared_ptr.hpp> + +namespace Swift { + +class GroupRosterItem; +class ContactRosterItem : public RosterItem { + public: + ContactRosterItem(const JID& jid, const JID& displayJID, const String& name, GroupRosterItem* parent); + virtual ~ContactRosterItem(); + + StatusShow::Type getStatusShow() const; + StatusShow::Type getSimplifiedStatusShow() const; + String getStatusText() const; + void setAvatarPath(const String& path); + const String& getAvatarPath() const; + const JID& getJID() const; + void setDisplayJID(const JID& jid); + const JID& getDisplayJID() const; + void applyPresence(const String& resource, boost::shared_ptr<Presence> presence); + void clearPresence(); + void calculateShownPresence(); + const std::vector<String> getGroups() const; + /** Only used so a contact can know about the groups it's in*/ + void addGroup(const String& group); + void removeGroup(const String& group); + private: + JID jid_; + JID displayJID_; + String avatarPath_; + std::map<String, boost::shared_ptr<Presence> > presences_; + boost::shared_ptr<Presence> offlinePresence_; + boost::shared_ptr<Presence> shownPresence_; + std::vector<String> groups_; +}; + +} + |