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 #include <kaboutdata.h>
00045
00046 #include "karambarootpixmap.h"
00047
00048 #include "bar.h"
00049 #include "textlabel.h"
00050 #include "imagelabel.h"
00051 #include "graph.h"
00052
00053 #include "clickarea.h"
00054
00055 #include "sensorparams.h"
00056 #include "memsensor.h"
00057 #include "datesensor.h"
00058 #include "uptimesensor.h"
00059 #include "memsensor.h"
00060 #include "cpusensor.h"
00061 #include "networksensor.h"
00062 #include "xmmssensor.h"
00063 #include "noatunsensor.h"
00064 #include "programsensor.h"
00065 #include "disksensor.h"
00066 #include "sensorsensor.h"
00067 #include "textfilesensor.h"
00068 #include "karambaconf.h"
00069
00075 class karamba : public QWidget
00076 {
00077 Q_OBJECT
00078
00079 public:
00080 karamba(QString fn);
00081
00082 virtual ~karamba();
00083
00084 protected:
00085 void mousePressEvent( QMouseEvent *);
00086 void mouseReleaseEvent( QMouseEvent *);
00087 void mouseDoubleClickEvent( QMouseEvent *);
00088 void mouseMoveEvent( QMouseEvent *);
00089 void closeEvent ( QCloseEvent *);
00090 void paintEvent ( QPaintEvent *);
00091
00092
00093
00094 private:
00095 KWinModule* kWinModule;
00096 NETWinInfo* info;
00097 bool onTop;
00098 bool fixedPosition;
00099
00100 bool parseConfig();
00101 int getInt( QString, QString & );
00102 int getInt( QString, QString &, bool & );
00103
00104 void get3Int(QString w, QString &line, int&, int&, int& );
00105 void get3Int(QString w, QString &line, int&, int&, int&, bool& );
00106 QString getString( QString, QString & );
00107 QString getString( QString, QString &, bool& );
00108 bool getBoolean( QString, QString & );
00109 bool getBoolean( QString, QString &, bool& );
00110
00111 void setSensor( QString &line , Meter* meter);
00112 void passClick( QMouseEvent* );
00113
00114 QMap<QString, Sensor*> sensorMap;
00115 QObjectList *meterList;
00116 QObjectList *sensorList;
00117 QObjectList *clickList;
00118 QObjectList *timeList;
00119 QObjectList *imageList;
00120
00121 QTime lowerTimer;
00122
00123 bool foundKaramba;
00124
00125 DCOPClient *client;
00126 QCString appId;
00127
00128 QPixmap pm;
00129 QPixmap background;
00130 QPainter p;
00131 KarambaRootPixmap *kroot;
00132 QString themeFile;
00133 QString themePath;
00134
00135 QPoint clickPos;
00136 KPopupMenu *kpop;
00137 KActionCollection *accColl;
00138 KToggleAction *toggleLocked;
00139 bool locked;
00140
00141
00142 public slots:
00143 void step();
00144 void updateSensors();
00145 void currentDesktopChanged(int);
00146
00147 void updateBackground(KSharedPixmap*);
00148
00149 private slots:
00150 void startNewKaramba();
00151 void reloadConfig();
00152 void editConfig();
00153 void slotToggleLocked();
00154 void Config();
00155 };
00156
00157 #endif // _KARAMBA_H_