30 #ifndef PLUGINS_AZOTH_INTERFACES_IPROTOCOL_H
31 #define PLUGINS_AZOTH_INTERFACES_IPROTOCOL_H
43 class IProtocolPlugin;
208 virtual
void RegisterAccount (const QString& name, const QList<QWidget*>& widgets) = 0;
272 "org.Deviant.LeechCraft.Azoth.IProtocol/1.0");
Q_DECLARE_METATYPE(LeechCraft::Azoth::State)
virtual QObject * GetParentProtocolPlugin() const =0
Returns the pointer to the parent protocol plugin that this protocol belongs to.
Q_DECLARE_INTERFACE(LeechCraft::Azoth::IAccount,"org.Deviant.LeechCraft.Azoth.IAccount/1.0")
virtual QByteArray GetProtocolID() const =0
Returns the protocol ID, which must be unique among all the protocols.
virtual void RegisterAccount(const QString &name, const QList< QWidget * > &widgets)=0
Adds an account with the given name and widgets.
virtual void accountAdded(QObject *account)=0
Notifies about new account.
virtual QList< QWidget * > GetAccountRegistrationWidgets(AccountAddOptions options)=0
Returns the widgets used for account addition.
Q_DECLARE_OPERATORS_FOR_FLAGS(IAccount::AccountFeatures)
virtual QString GetProtocolName() const =0
Returns the human-readable name of this protocol, like "Jabber" or "ICQ".
virtual QWidget * GetMUCJoinWidget()=0
Returns the widget used to set up the MUC join options.
virtual QIcon GetProtocolIcon() const =0
Returns the icon of this protocol.
virtual ProtocolFeatures GetFeatures() const =0
virtual QObject * GetQObject()=0
Returns the protocol object as a QObject.
virtual QList< QObject * > GetRegisteredAccounts()=0
Returns the accounts within this protocol.
virtual void accountRemoved(QObject *account)=0
Notifies about an account having been removed.
virtual void RemoveAccount(QObject *account)=0
Removes the given account.