Back to index

kdeartwork  4.3.2
lorenz.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //
00003 // Lorenz - Lorenz Attractor screen saver
00004 //   Nicolas Brodu, brodu@kde.org, 2000
00005 //
00006 // Portions of code from kblankscrn and khop.
00007 //   See authors there.
00008 //
00009 // I release my code as GPL, but see the other headers and the README
00010 
00011 #ifndef LORENZKSCRN_H
00012 #define LORENZKSCRN_H
00013 
00014 #include <qtimer.h>
00015 #include <qcolor.h>
00016 #include <kscreensaver.h>
00017 #include <kdialog.h>
00018 
00019 // See lorenz.cpp for this private class
00020 class Matrix3D;
00021 
00022 class KLorenzSaver : public KScreenSaver
00023 {
00024     Q_OBJECT
00025 public:
00026     KLorenzSaver( WId id );
00027     virtual ~KLorenzSaver();
00028     void setSpeed(int num);
00029     void setEpoch(int num);
00030     void setCRate(int num);
00031     void setZRot(int num);
00032     void setYRot(int num);
00033     void setXRot(int num);
00034     void updateMatrix();
00035     void newEpoch();
00036 
00037 protected:
00038     void paintEvent(QPaintEvent *);
00039 
00040 protected:
00041     QTimer timer;
00042 
00043 private:
00044     void readSettings();
00045 
00046 private:
00047     double x, y, z, t;
00048     double speed, epoch, zrot, yrot, xrot, crate;
00049     int e;
00050     Matrix3D *mat;
00051 };
00052 
00053 class QSlider;
00054 
00055 class KLorenzSetup : public KDialog
00056 {
00057     Q_OBJECT
00058 public:
00059     KLorenzSetup(QWidget *parent = 0 );
00060     ~KLorenzSetup();
00061 
00062 protected:
00063     void readSettings();
00064 
00065 private slots:
00066     void slotSpeed(int num);
00067     void slotEpoch(int num);
00068     void slotCRate(int num);
00069     void slotZRot(int num);
00070     void slotYRot(int num);
00071     void slotXRot(int num);
00072 
00073     void slotOk();
00074     void slotHelp();
00075     void slotDefault();
00076 
00077 private:
00078     QWidget *preview;
00079     QSlider *sps, *eps, *zrs, *yrs, *xrs, *crs;
00080     KLorenzSaver *saver;
00081     int speed, epoch, zrot, yrot, xrot, crate;
00082 };
00083 
00084 #endif
00085