Main Page   Class Hierarchy   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 
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     // get3Int reads an int triplet, e.g. COLOR:0,50,100
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     // use only the first occurance of KARAMBA in a config file
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_

Generated on Fri Apr 25 18:51:12 2003 for karamba by doxygen1.2.18