kmail

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 TDEPopupMenu;
00035 class TQPoint;
00036 
00041 class KMSystemTray : public KSystemTray
00042 {
00043   Q_OBJECT
00044   
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   void resizeEvent(TQResizeEvent *);
00073 
00074   TQString prettyName(KMFolder *);
00075 
00076 private:
00077 
00078   bool mParentVisible;
00079   TQPoint mPosOfMainWin;
00080   int mDesktopOfMainWin;
00081 
00082   int mMode;
00083   int mCount;
00084   int mNewMessagePopupId;
00085 
00086   TDEPopupMenu * mPopupMenu;
00087   TQPixmap mDefaultIcon;
00088   TQImage mLightIconImage;
00089 
00090   TQValueVector<KMFolder*> mPopupFolders;
00091   TQMap<TQGuardedPtr<KMFolder>, int> mFoldersWithUnread;
00092   TQMap<TQGuardedPtr<KMFolder>, bool> mPendingUpdates;
00093   TQTimer *mUpdateTimer;
00094   time_t mLastUpdate;
00095 };
00096 
00097 #endif