karm

desktoptracker.h

00001 #ifndef KARM_DESKTOP_TRACKER_H
00002 #define KARM_DESKTOP_TRACKER_H
00003 
00004 #include <vector>
00005 
00006 #include <kwinmodule.h>
00007 
00008 #include "desktoplist.h"
00009 
00010 class Task;
00011 class QTimer;
00012 
00013 typedef std::vector<Task *> TaskVector;
00014 const int maxDesktops = 16;
00015 
00021 class DesktopTracker: public QObject
00022 {
00023   Q_OBJECT
00024 
00025   public:
00026     DesktopTracker();
00027     void printTrackers();
00028     void startTracking();
00029     void registerForDesktops( Task* task, DesktopList dl );
00030     int desktopCount() const { return _desktopCount; };
00031 
00032   private: // member variables
00033     KWinModule kWinModule;
00034 
00035     // define vectors for at most 16 virtual desktops
00036     // E.g.: desktopTrackerStop[3] contains a vector with
00037     // all tasks to be notified, when switching to/from desk 3.
00038     TaskVector desktopTracker[maxDesktops];
00039     int _previousDesktop;
00040     int _desktopCount;
00041     int _desktop;
00042     QTimer *_timer;
00043 
00044   signals:
00045     void reachedtActiveDesktop( Task* task );
00046     void leftActiveDesktop( Task* task );
00047 
00048   public slots:
00049     void handleDesktopChange( int desktop );
00050 
00051   private slots:
00052     void changeTimers();
00053 };
00054 
00055 #endif // KARM_DESKTOP_TRACKER_H
KDE Home | KDE Accessibility Home | Description of Access Keys