/* kopeteglobal.h - Kopete Globals Copyright (c) 2004 by Richard Smith <kde@metafoo.co.uk> Kopete (c) 2004 by the Kopete developers <kopete-devel@kde.org> ************************************************************************* * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2 of the License, or (at your option) any later version. * * * ************************************************************************* */ #ifndef KOPETEGLOBAL_H #define KOPETEGLOBAL_H #include "kopetecontactproperty.h" #include "kopete_export.h" /** * This namespace contains all of Kopete's core classes and functions. */ namespace Kopete { /** * This namespace contains Kopete's global settings and functions */ namespace Global { class PropertiesPrivate; /** * \brief Installs one or more kopete emoticon themes from a tarball * (either .kopete-emoticons or .tar.gz or .tar.bz2) * * @p localPath Full path to a local emoticon archive, use TDEIO to download * files in case their are non-local. * * @return true in case install was successful, false otherwise. Errors are * displayed by either TDEIO or by using KMessagebox directly. * * TODO: If possible, port it to TDEIO instead of using ugly blocking KTar **/ KOPETE_EXPORT void installEmoticonTheme(const TQString &localPath); /** * \brief Global facility to query/store templates that are needed by KopeteContactProperty * * Basically all a plugin author needs to worry about is creating ContactPropertyTmpl * objects for all the properties he wants to set for a Kopete::Contact, * everything else is handled behind the scenes. **/ class KOPETE_EXPORT Properties { friend class Kopete::ContactPropertyTmpl; public: /** * \brief Singleton accessor for this class. * * Use it to access the global list of property-templates or to get * a reference to one of the common ContactPropertyTmpl objects */ static Properties *self(); /** * Return a template with defined by @p key, if no such template has * been registered ContactPropertyTmpl::null will be returned */ const ContactPropertyTmpl &tmpl(const TQString &key) const; /** * @return a ready-to-use template for a contact's full name. * * This is actually no real property, it makes use of * firstName() and lastName() to assemble an name that consists of * both name parts */ const ContactPropertyTmpl &fullName() const; /** * Return default template for a contact's idle-time */ const ContactPropertyTmpl &idleTime() const; /** * Return default template for a contact's online-since time * (i.e. time since he went from offline to online) */ const ContactPropertyTmpl &onlineSince() const; /** * @return default template for a contact's last-seen time */ const ContactPropertyTmpl &lastSeen() const; /** * @return default template for a contact's away-message */ const ContactPropertyTmpl &awayMessage() const; /** * @return default template for a contact's first name */ const ContactPropertyTmpl &firstName() const; /** * @return default template for a contact's last name */ const ContactPropertyTmpl &lastName() const; /** * @return default template for a contact's email-address */ const ContactPropertyTmpl &emailAddress() const; /** * @return default template for a contact's private phone number */ const ContactPropertyTmpl &privatePhone() const; /** * @return default template for a contact's private mobile number */ const ContactPropertyTmpl &privateMobilePhone() const; /** * @return default template for a contact's work phone number */ const ContactPropertyTmpl &workPhone() const; /** * @return default template for a contact's work mobile number */ const ContactPropertyTmpl &workMobilePhone() const; /** * @return default template for a contact's nickname (set by the contact) */ const ContactPropertyTmpl &nickName() const; /** * default template for a contact's photo. * * It could be either a TQString or a TQImage. * If it's a TQString, it should points to the path the image is stored. */ const ContactPropertyTmpl &photo() const; /** * @return a map of all registered ContactPropertyTmpl object */ const ContactPropertyTmpl::Map &templateMap() const; /** * return true if a template with key @p key is already registered, * false otherwise */ bool isRegistered(const TQString &key); private: Properties(); ~Properties(); bool registerTemplate(const TQString &key, const ContactPropertyTmpl &tmpl); void unregisterTemplate(const TQString &key); const ContactPropertyTmpl &createProp(const TQString &key, const TQString &label, const TQString &icon=TQString(), bool persistent = false) const; private: static Properties *mSelf; PropertiesPrivate *d; }; // end class Properties } // Global } // Kopete #endif // vim: set noet ts=4 sts=4 sw=4: