kmsystemtray.h
00001 /*************************************************************************** 00002 kmsystemtray.h - description 00003 ------------------- 00004 begin : Fri Aug 31 22:38:44 EDT 2001 00005 copyright : (C) 2001 by Ryan Breen 00006 email : ryan@porivo.com 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef KMSYSTEMTRAY_H 00019 #define KMSYSTEMTRAY_H 00020 00021 #include <ksystemtray.h> 00022 00023 #include <tqmap.h> 00024 #include <tqguardedptr.h> 00025 #include <tqvaluevector.h> 00026 #include <tqpixmap.h> 00027 #include <tqimage.h> 00028 00029 #include <time.h> 00030 00031 class KMFolder; 00032 class KMMainWidget; 00033 class TQMouseEvent; 00034 class KPopupMenu; 00035 class TQPoint; 00036 00041 class KMSystemTray : public KSystemTray 00042 { 00043 Q_OBJECT 00044 TQ_OBJECT 00045 public: 00047 KMSystemTray(TQWidget* parent=0, const char *name=0); 00049 ~KMSystemTray(); 00050 00051 void setMode(int mode); 00052 int mode() const; 00053 00054 void hideKMail(); 00055 bool hasUnreadMail() const; 00056 00057 public slots: 00058 void foldersChanged(); 00059 00060 private slots: 00061 void updateNewMessageNotification(KMFolder * folder); 00062 void selectedAccount(int); 00063 void updateNewMessages(); 00064 void tray_quit(); 00065 00066 protected: 00067 void mousePressEvent(TQMouseEvent *); 00068 bool mainWindowIsOnCurrentDesktop(); 00069 void showKMail(); 00070 void buildPopupMenu(); 00071 void updateCount(); 00072 00073 TQString prettyName(KMFolder *); 00074 00075 private: 00076 00077 bool mParentVisible; 00078 TQPoint mPosOfMainWin; 00079 int mDesktopOfMainWin; 00080 00081 int mMode; 00082 int mCount; 00083 int mNewMessagePopupId; 00084 00085 KPopupMenu * mPopupMenu; 00086 TQPixmap mDefaultIcon; 00087 TQImage mLightIconImage; 00088 00089 TQValueVector<KMFolder*> mPopupFolders; 00090 TQMap<TQGuardedPtr<KMFolder>, int> mFoldersWithUnread; 00091 TQMap<TQGuardedPtr<KMFolder>, bool> mPendingUpdates; 00092 TQTimer *mUpdateTimer; 00093 time_t mLastUpdate; 00094 }; 00095 00096 #endif