00001
00002
00003
00004
00005 #ifndef _KARAMBA_H_
00006 #define _KARAMBA_H_
00007
00008 #ifdef HAVE_CONFIG_H
00009 #include <config.h>
00010 #endif
00011
00012 #include <qwidget.h>
00013 #include <kapplication.h>
00014
00015 #include <kwinmodule.h>
00016 #include <kwin.h>
00017
00018 #include <qfile.h>
00019 #include <kfile.h>
00020 #include <qfileinfo.h>
00021 #include <kaction.h>
00022 #include <qtimer.h>
00023 #include <qpixmap.h>
00024 #include <qpainter.h>
00025
00026 #include <qregexp.h>
00027 #include <qlabel.h>
00028 #include <qobjectlist.h>
00029 #include <qstring.h>
00030 #include <qstringlist.h>
00031 #include <ksharedpixmap.h>
00032 #include <qvaluestack.h>
00033 #include <dcopclient.h>
00034 #include <kpopupmenu.h>
00035 #include <qcursor.h>
00036 #include <netwm.h>
00037 #include <kiconloader.h>
00038 #include <kfiledialog.h>
00039 #include <qmap.h>
00040 #include <kurl.h>
00041 #include <krun.h>
00042 #include <qdatetime.h>
00043 #include <ksimpleconfig.h>
00044
00045 #include "karambarootpixmap.h"
00046
00047 #include "bar.h"
00048 #include "textlabel.h"
00049 #include "imagelabel.h"
00050 #include "graph.h"
00051
00052 #include "clickarea.h"
00053
00054 #include "sensorparams.h"
00055 #include "memsensor.h"
00056 #include "datesensor.h"
00057 #include "uptimesensor.h"
00058 #include "memsensor.h"
00059 #include "cpusensor.h"
00060 #include "networksensor.h"
00061 #include "xmmssensor.h"
00062 #include "noatunsensor.h"
00063 #include "programsensor.h"
00064 #include "disksensor.h"
00065 #include "sensorsensor.h"
00066 #include "textfilesensor.h"
00067 #include "karambaconf.h"
00068
00074 class karamba : public QWidget
00075 {
00076 Q_OBJECT
00077
00078 public:
00079 karamba(QString fn);
00080
00081 virtual ~karamba();
00082
00083 protected:
00084 void mousePressEvent( QMouseEvent *);
00085 void mouseReleaseEvent( QMouseEvent *);
00086 void mouseDoubleClickEvent( QMouseEvent *);
00087 void mouseMoveEvent( QMouseEvent *);
00088 void closeEvent ( QCloseEvent *);
00089 void paintEvent ( QPaintEvent *);
00090
00091
00092
00093 private:
00094 KWinModule* kWinModule;
00095 NETWinInfo* info;
00096 bool onTop;
00097 bool fixedPosition;
00098
00099 bool parseConfig();
00100 int getInt( QString, QString & );
00101 int getInt( QString, QString &, bool & );
00102
00103 void get3Int(QString w, QString &line, int&, int&, int& );
00104 void get3Int(QString w, QString &line, int&, int&, int&, bool& );
00105 QString getString( QString, QString & );
00106 QString getString( QString, QString &, bool& );
00107 bool getBoolean( QString, QString & );
00108 bool getBoolean( QString, QString &, bool& );
00109
00110 void setSensor( QString &line , Meter* meter);
00111 void passClick( QMouseEvent* );
00112
00113 QMap<QString, Sensor*> sensorMap;
00114 QObjectList *meterList;
00115 QObjectList *sensorList;
00116 QObjectList *clickList;
00117 QObjectList *timeList;
00118 QObjectList *imageList;
00119
00120 QTime lowerTimer;
00121
00122 bool foundKaramba;
00123
00124 DCOPClient *client;
00125 QCString appId;
00126
00127 QPixmap pm;
00128 QPixmap background;
00129 QPainter p;
00130 KarambaRootPixmap *kroot;
00131 QString themeFile;
00132 QString themePath;
00133
00134 QPoint clickPos;
00135 KPopupMenu *kpop;
00136 KActionCollection *accColl;
00137 KToggleAction *toggleLocked;
00138 bool locked;
00139
00140 public slots:
00141 void step();
00142 void updateSensors();
00143 void currentDesktopChanged(int);
00144
00145 void updateBackground(KSharedPixmap*);
00146
00147 private slots:
00148 void startNewKaramba();
00149 void reloadConfig();
00150 void editConfig();
00151 void slotToggleLocked();
00152 void Config();
00153 };
00154
00155 #endif // _KARAMBA_H_