diff options
Diffstat (limited to 'kopete/protocols/oscar/aim/aimcontact.h')
-rw-r--r-- | kopete/protocols/oscar/aim/aimcontact.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/kopete/protocols/oscar/aim/aimcontact.h b/kopete/protocols/oscar/aim/aimcontact.h new file mode 100644 index 00000000..eea346ac --- /dev/null +++ b/kopete/protocols/oscar/aim/aimcontact.h @@ -0,0 +1,103 @@ +/* + aimcontact.h - Oscar Protocol Plugin + + Copyright (c) 2003 by Will Stephenson + Copyright (c) 2004 by Matt Rogers <mattr@kde.org> + Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org> + + ************************************************************************* + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ************************************************************************* +*/ + +#ifndef AIMCONTACT_H +#define AIMCONTACT_H + +#include <tqdatetime.h> + +#include "oscarcontact.h" + + +namespace Kopete +{ +class ChatSession; +} + +class AIMAccount; +class AIMProtocol; +class AIMUserInfoDialog; + +class AIMContact : public OscarContact +{ +Q_OBJECT + + +public: + AIMContact( Kopete::Account*, const TQString&, Kopete::MetaContact*, + const TQString& icon = TQString(), const Oscar::SSI& ssiItem = Oscar::SSI() ); + virtual ~AIMContact(); + + bool isReachable(); + TQPtrList<TDEAction> *customContextMenuActions(); + + const TQString &userProfile() { return mUserProfile; } + + virtual const TQString awayMessage(); + virtual void setAwayMessage( const TQString &message ); + + int warningLevel() const; + + /** + * Gets the last time an autoresponse was sent to this contact + * @returns TQDateTime Object that represents the date/time + */ + TQDateTime lastAutoResponseTime() {return m_lastAutoresponseTime;} + + /** Sends an auto response to this contact */ + virtual void sendAutoResponse(Kopete::Message& msg); + +public slots: + void updateSSIItem(); + void slotUserInfo(); + void userInfoUpdated( const TQString& contact, const UserDetails& details ); + void userOnline( const TQString& userId ); + void userOffline( const TQString& userId ); + void updateAwayMessage( const TQString& userId, const TQString& message ); + void updateProfile( const TQString& contact, const TQString& profile ); + void gotWarning( const TQString& contact, TQ_UINT16, TQ_UINT16 ); + +signals: + void updatedProfile(); + +protected slots: + virtual void slotSendMsg(Kopete::Message& message, Kopete::ChatSession *); + virtual void updateFeatures(); + +private slots: + void requestBuddyIcon(); + void haveIcon( const TQString&, TQByteArray ); + void closeUserInfoDialog(); + void warnUser(); + + void slotVisibleTo(); + void slotInvisibleTo(); + +private: + AIMProtocol* mProtocol; + AIMUserInfoDialog* m_infoDialog; + TQString mUserProfile; + bool m_haveAwayMessage; + bool m_mobile; // Is this user mobile (i.e. do they have message forwarding on, or mobile AIM) + TQDateTime m_lastAutoresponseTime; + + TDEAction* m_warnUserAction; + TDEToggleAction *m_actionVisibleTo; + TDEToggleAction *m_actionInvisibleTo; +}; +#endif +//kate: tab-width 4; indent-mode csands; |