/* * Copyright (c) 2010-2014 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include #include #include #include #include namespace Swift { class UserSearchWindow { public: enum Type {AddContact, ChatToContact, InviteToChat}; virtual ~UserSearchWindow() {} virtual void clear() = 0; virtual void setResults(const std::vector& results) = 0; virtual void setResultsForm(const Form::ref results) = 0; virtual void addSavedServices(const std::vector& services) = 0; virtual void setSelectedService(const JID& service) = 0; virtual void setServerSupportsSearch(bool support) = 0; virtual void setSearchError(bool support) = 0; virtual void setSearchFields(boost::shared_ptr fields) = 0; virtual void setNameSuggestions(const std::vector& suggestions) = 0; virtual void prepopulateJIDAndName(const JID& jid, const std::string& name) = 0; virtual void setContactSuggestions(const std::vector& suggestions) = 0; virtual void setJIDs(const std::vector&) = 0; virtual void setRoomJID(const JID& roomJID) = 0; virtual std::string getReason() const = 0; virtual std::vector getJIDs() const = 0; virtual void setCanStartImpromptuChats(bool supportsImpromptu) = 0; virtual void updateContacts(const std::vector& contacts) = 0; virtual void addContacts(const std::vector& contacts) = 0; virtual void setCanSupplyDescription(bool allowed) = 0; virtual void setWarning(const boost::optional& message) = 0; virtual void show() = 0; boost::signal onFormRequested; boost::signal, const JID&)> onSearchRequested; boost::signal onNameSuggestionRequested; boost::signal onContactSuggestionsRequested; boost::signal&)> onJIDUpdateRequested; boost::signal&)> onJIDAddRequested; boost::signal onJIDEditFieldChanged; }; }