contactlistview.h
00001 /* 00002 This file is part of KAddressBook. 00003 Copyright (c) 2002 Mike Pilone <mpilone@slac.com> 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00018 00019 As a special exception, permission is given to link this program 00020 with any edition of TQt, and distribute the resulting executable, 00021 without including the source code for TQt in the source distribution. 00022 */ 00023 00024 #ifndef CONTACTLISTVIEW_H 00025 #define CONTACTLISTVIEW_H 00026 00027 #include <tqcolor.h> 00028 #include <tqpixmap.h> 00029 #include <tqtooltip.h> 00030 #include <tqstring.h> 00031 00032 #include <klistview.h> 00033 00034 #include <kabc/field.h> 00035 00036 class TQDropEvent; 00037 class KAddressBookTableView; 00038 class ContactListView; 00039 class KIMProxy; 00040 00044 class DynamicTip : public TQToolTip 00045 { 00046 public: 00047 DynamicTip( ContactListView * parent ); 00048 00049 protected: 00050 void maybeTip( const TQPoint & ); 00051 00052 private: 00053 }; 00054 00055 class ContactListViewItem : public KListViewItem 00056 { 00057 00058 public: 00059 ContactListViewItem(const KABC::Addressee &a, ContactListView* parent, 00060 KABC::AddressBook *doc, const KABC::Field::List &fields, KIMProxy *proxy ); 00061 const KABC::Addressee &addressee() const { return mAddressee; } 00062 virtual void refresh(); 00063 virtual ContactListView* parent(); 00064 virtual TQString key ( int, bool ) const; 00065 void setHasIM( bool hasIM ); 00069 virtual void paintCell(TQPainter * p, const TQColorGroup & cg, 00070 int column, int width, int align ); 00071 00072 private: 00073 KABC::Addressee mAddressee; 00074 KABC::Field::List mFields; 00075 ContactListView *parentListView; 00076 KABC::AddressBook *mDocument; 00077 KIMProxy *mIMProxy; 00078 bool mHasIM; 00079 }; 00080 00081 00083 // ContactListView 00084 00085 class ContactListView : public KListView 00086 { 00087 Q_OBJECT 00088 TQ_OBJECT 00089 00090 public: 00091 ContactListView(KAddressBookTableView *view, 00092 KABC::AddressBook *doc, 00093 TQWidget *parent, 00094 const char *name = 0L ); 00095 virtual ~ContactListView() {} 00096 //void resort(); 00097 00100 bool tooltips() const { return mToolTips; } 00101 void setToolTipsEnabled(bool enabled) { mToolTips = enabled; } 00102 00103 bool alternateBackground() const { return mABackground; } 00104 void setAlternateBackgroundEnabled(bool enabled); 00105 00106 bool singleLine() const { return mSingleLine; } 00107 void setSingleLineEnabled(bool enabled) { mSingleLine = enabled; } 00108 00109 const TQColor &alternateColor() const { return mAlternateColor; } 00110 00115 void setBackgroundPixmap(const TQString &filename); 00116 00120 void setShowIM( bool enabled ); 00121 00125 bool showIM(); 00126 00133 void setIMColumn( int column ); 00134 00138 int imColumn(); 00139 00140 protected: 00144 virtual void paintEmptyArea( TQPainter * p, const TQRect & rect ); 00145 virtual void contentsMousePressEvent(TQMouseEvent*); 00146 void contentsMouseMoveEvent( TQMouseEvent *e ); 00147 void contentsDropEvent( TQDropEvent *e ); 00148 virtual bool acceptDrag(TQDropEvent *e) const; 00149 00150 protected slots: 00151 void itemDropped(TQDropEvent *e); 00152 00153 public slots: 00154 00155 signals: 00156 void startAddresseeDrag(); 00157 void addresseeDropped(TQDropEvent *); 00158 00159 private: 00160 KAddressBookTableView *pabWidget; 00161 int oldColumn; 00162 int column; 00163 bool ascending; 00164 00165 bool mABackground; 00166 bool mSingleLine; 00167 bool mToolTips; 00168 bool mShowIM; 00169 00170 TQColor mAlternateColor; 00171 00172 TQPoint presspos; 00173 int mInstantMsgColumn; 00174 }; 00175 00176 00177 #endif