Qt3to4
[kdeartwork.git] / kscreensaver / kdesavers / Flux.h
blob9b2ec6d87233c5cb65cfe065f8bb197dd9d98fa8
1 #ifndef __FLUXSS_H__
2 #define __FLUXSS_H__
3 //============================================================================
4 //
5 // Terence Welsh Screensaver - Flux
6 // http://www.reallyslick.com/
7 //
8 // Ported to KDE by Karl Robillard
9 //
10 //============================================================================
13 #include <qgl.h>
14 //Added by qt3to4:
15 #include <QKeyEvent>
18 #define LIGHTSIZE 64
21 class flux;
22 class particle;
23 class QTimer;
25 class FluxWidget : public QGLWidget
27 Q_OBJECT
29 public:
31 enum eDefault
33 Regular,
34 Hypnotic,
35 Insane,
36 Sparklers,
37 Paradigm,
38 Galactic,
39 DefaultModes
42 FluxWidget( QWidget* parent=0, const char* name=0 );
43 ~FluxWidget();
45 void setDefaults( int which );
46 void updateParameters();
48 protected:
50 void paintGL();
51 void resizeGL( int w, int h );
52 void initializeGL();
53 #ifdef UNIT_TEST
54 void keyPressEvent( QKeyEvent* );
55 #endif
57 private slots:
59 void nextFrame();
61 private:
63 float lumdiff;
64 float cameraAngle;
65 float cosCameraAngle, sinCameraAngle;
66 unsigned char lightTexture[LIGHTSIZE][LIGHTSIZE];
68 int dFluxes;
69 int dParticles;
70 int dTrail;
71 int dGeometry;
72 float dSize;
73 int dComplexity;
74 int dRandomize;
75 int dExpansion;
76 int dRotation;
77 int dWind;
78 float dInstability;
79 int dBlur;
80 int dSmart;
81 int dPriority;
83 flux* _fluxes;
85 // Using QTimer rather than timerEvent() to avoid getting locked out of
86 // the QEvent loop on lower-end systems. Ian Geiser <geiseri@kde.org>
87 // says this is the way to go.
88 QTimer* _timer;
89 int _frameTime;
91 friend class flux;
92 friend class particle;
96 #ifndef UNIT_TEST
97 #include <kdialogbase.h>
98 #include <kscreensaver.h>
101 class KFluxScreenSaver : public KScreenSaver
103 Q_OBJECT
105 public:
107 KFluxScreenSaver( WId id );
108 virtual ~KFluxScreenSaver();
110 int mode() const { return _mode; }
112 public slots:
114 void setMode( int );
116 private:
118 void readSettings();
120 FluxWidget* _flux;
121 int _mode;
125 class QComboBox;
127 class KFluxSetup : public KDialogBase
129 Q_OBJECT
131 public:
133 KFluxSetup( QWidget* parent = 0, const char* name = 0 );
134 ~KFluxSetup();
136 private slots:
138 void slotHelp();
139 void slotOk();
141 private:
143 QComboBox* modeW;
144 KFluxScreenSaver* _saver;
146 #endif
149 #endif //__FLUXSS_H__