00001 #ifndef KARM_IDLE_TIME_DETECTOR_H
00002 #define KARM_IDLE_TIME_DETECTOR_H
00003
00004 #include <tqobject.h>
00005 #include "config.h"
00006 #include <tqdatetime.h>
00007 #include <kdebug.h>
00008
00009 class TQTimer;
00010
00011 #ifdef HAVE_LIBXSS
00012 #include <X11/Xlib.h>
00013 #include <X11/Xutil.h>
00014 #include <X11/extensions/scrnsaver.h>
00015 #include <fixx11h.h>
00016 #endif // HAVE_LIBXSS
00017
00018
00019 const int secsPerMinute = 60;
00020
00021
00022 const int testInterval= secsPerMinute * 1000;
00023
00028 class IdleTimeDetector :public TQObject
00029 {
00030 Q_OBJECT
00031 TQ_OBJECT
00032
00033 public:
00038 IdleTimeDetector(int maxIdle);
00039
00045 bool isIdleDetectionPossible();
00046
00047 signals:
00054 void extractTime(int minutes);
00055
00057 void stopAllTimers();
00058
00060 void stopAllTimersAt(TQDateTime qdt);
00061
00062 public slots:
00067 void setMaxIdle(int maxIdle);
00068
00072 void startIdleDetection();
00073
00077 void stopIdleDetection();
00078
00084 void toggleOverAllIdleDetection(bool on);
00085
00086
00087 protected:
00088 #ifdef HAVE_LIBXSS
00089 void informOverrun(int idle);
00090 #endif // HAVE_LIBXSS
00091
00092 protected slots:
00093 void check();
00094
00095 private:
00096 #ifdef HAVE_LIBXSS
00097 XScreenSaverInfo *_mit_info;
00098 #endif
00099 bool _idleDetectionPossible;
00100 bool _overAllIdleDetect;
00101 int _maxIdle;
00102 TQTimer *_timer;
00103 };
00104
00105 #endif // KARM_IDLE_TIME_DETECTOR_H