summaryrefslogtreecommitdiffstats
path: root/kopete/protocols/oscar/aim/aimcontact.h
diff options
context:
space:
mode:
Diffstat (limited to 'kopete/protocols/oscar/aim/aimcontact.h')
-rw-r--r--kopete/protocols/oscar/aim/aimcontact.h103
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;