|
|
|
/*
|
|
|
|
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
|
|
|
|
{
|
|
|
|
TQ_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
|