summarywidget.h
00001 /* 00002 This file is part of Kontact. 00003 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 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 SUMMARYWIDGET_H 00025 #define SUMMARYWIDGET_H 00026 00027 #include <dcopobject.h> 00028 #include <dcopref.h> 00029 00030 #include <tqmap.h> 00031 #include <tqptrlist.h> 00032 #include <tqtimer.h> 00033 #include <tqwidget.h> 00034 00035 #include "summary.h" 00036 #include <kurl.h> 00037 00038 class TQVBoxLayout; 00039 class TQLabel; 00040 00041 class DCOPRef; 00042 class KURLLabel; 00043 00044 typedef TQValueList< TQPair<TQString, KURL> > ArticleMap; 00045 00046 typedef struct { 00047 DCOPRef ref; 00048 TQString title; 00049 TQString url; 00050 TQPixmap logo; 00051 ArticleMap map; 00052 } Feed; 00053 00054 typedef TQValueList<Feed> FeedList; 00055 00056 class SummaryWidget : public Kontact::Summary, public DCOPObject 00057 { 00058 Q_OBJECT 00059 // 00060 K_DCOP 00061 00062 public: 00063 SummaryWidget( TQWidget *parent, const char *name = 0 ); 00064 00065 int summaryHeight() const; 00066 TQStringList configModules() const; 00067 00068 k_dcop: 00072 void documentUpdated( DCOPRef ); 00076 void documentAdded( TQString ); 00080 void documentRemoved( TQString ); 00086 void documentUpdateError( DCOPRef ref, int errorCode ); 00087 00088 public slots: 00089 void updateSummary( bool force = false ); 00090 void configChanged(); 00091 00092 protected slots: 00093 void updateDocuments(); 00094 void rmbMenu( const TQString& ); 00095 00096 protected: 00097 virtual bool eventFilter( TQObject *obj, TQEvent *e ); 00098 void initDocuments(); 00099 void updateView(); 00100 void readConfig(); 00101 00102 private: 00103 TQVBoxLayout *mLayout; 00104 TQWidget* mBaseWidget; 00105 00106 TQPtrList<TQLabel> mLabels; 00107 00108 FeedList mFeeds; 00109 00110 TQTimer mTimer; 00111 int mUpdateInterval; 00112 int mArticleCount; 00113 uint mFeedCounter; 00114 }; 00115 00116 #endif