Main Page   Class Hierarchy   Alphabetical List   Compound List   File List  

karamba.h

00001 /*
00002  * Copyright (C) 2003 Hans Karlsson <karlsson.h@home.se>
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 //#include <krootpixmap.h>
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     // get3Int reads an int triplet, e.g. COLOR:0,50,100
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     // use only the first occurance of KARAMBA in a config file
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     //KAboutData about;
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_

Generated on Tue May 6 09:52:08 2003 for karamba by doxygen1.2.18