summaryrefslogtreecommitdiffstats
path: root/kscreensaver/kdesavers/science.h
diff options
context:
space:
mode:
Diffstat (limited to 'kscreensaver/kdesavers/science.h')
-rw-r--r--kscreensaver/kdesavers/science.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/kscreensaver/kdesavers/science.h b/kscreensaver/kdesavers/science.h
new file mode 100644
index 00000000..7211f5d5
--- /dev/null
+++ b/kscreensaver/kdesavers/science.h
@@ -0,0 +1,148 @@
+// ----------------------------------------------------------------
+//
+// kscience - screen saver for KDE
+//
+// copyright (c) Rene Beutler 1998
+//
+
+#ifndef __SCIENCE_H__
+#define __SCIENCE_H__
+
+#include <qrect.h>
+#include <qtimer.h>
+#include <kdialogbase.h>
+#include <kscreensaver.h>
+
+class QSlider;
+class QCheckBox;
+
+#define MAX_MODES 6
+
+typedef signed int T32bit;
+
+class KScienceSaver;
+
+class KPreviewWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ KPreviewWidget( QWidget *parent );
+ void paintEvent( QPaintEvent *event );
+ void notifySaver( KScienceSaver *s = 0 );
+private:
+ KScienceSaver *saver;
+};
+
+struct KScienceData;
+
+class KScienceSaver : public KScreenSaver
+{
+ Q_OBJECT
+public:
+ KScienceSaver( WId id, bool setup=false, bool gP=false);
+ virtual ~KScienceSaver();
+
+ void do_refresh( const QRect & rect );
+ void setMode ( int mode );
+ void setMoveX ( signed int s );
+ void setMoveY ( signed int s );
+ void setMove ( bool s );
+ void setSize ( signed int s );
+ void setIntensity ( signed int s );
+ void setSpeed ( signed int s );
+ void setInverse ( bool b );
+ void setGravity ( bool b );
+ void setHideBG ( bool b );
+
+ void myAssert( bool term, const char *sMsg );
+
+private:
+ void readSettings();
+ void initLens();
+ void initialize();
+ void releaseLens();
+ void (KScienceSaver::*applyLens)(int xs, int ys, int xd, int yd, int w, int h);
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ void grabRootWindow();
+ void grabPreviewWidget();
+ void initWhirlLens();
+ void initSphereLens();
+ void initExponentialLens();
+ void initWaveLens();
+ void initCurvatureLens();
+ void blackPixel( int x, int y );
+ void blackPixelUndo( int x, int y);
+ void applyLens8bpp( int xs, int ys, int xd, int yd, int w, int h);
+ void applyLens16bpp(int xs, int ys, int xd, int yd, int w, int h);
+ void applyLens24bpp(int xs, int ys, int xd, int yd, int w, int h);
+ void applyLens32bpp(int xs, int ys, int xd, int yd, int w, int h);
+ QTimer timer;
+ bool moveOn;
+ bool setup;
+ bool grabPixmap;
+ int mode;
+ bool inverse[MAX_MODES];
+ bool gravity[MAX_MODES];
+ bool hideBG[MAX_MODES];
+ signed int size[MAX_MODES];
+ signed int moveX[MAX_MODES];
+ signed int moveY[MAX_MODES];
+ signed int speed[MAX_MODES];
+ signed int intensity[MAX_MODES];
+ int xcoord, ycoord;
+ double x, y, vx, vy;
+ signed int bpp, side;
+ int border, radius, diam, origin;
+ int imgnext;
+ char blackRestore[4];
+ KScienceData *d;
+};
+
+
+class KScienceSetup : public KDialogBase
+{
+ Q_OBJECT
+public:
+ KScienceSetup(QWidget *parent=0, const char *name=0);
+ ~KScienceSetup();
+protected:
+ void updateSettings();
+ void readSettings();
+
+private slots:
+ void slotMode( int );
+ void slotInverse();
+ void slotGravity();
+ void slotHideBG();
+ void slotMoveX( int );
+ void slotMoveY( int );
+ void slotSize( int );
+ void slotIntensity( int );
+ void slotSliderPressed();
+ void slotSliderReleased();
+ void slotSpeed( int );
+ void slotOk();
+ void slotHelp();
+
+private:
+ KPreviewWidget *preview;
+ KScienceSaver *saver;
+ QSlider *slideSize, *slideSpeed, *slideIntensity;
+ QSlider *slideMoveX, *slideMoveY;
+ QCheckBox *checkInverse, *checkGravity, *checkHideBG;
+
+ int mode;
+ bool inverse [MAX_MODES];
+ bool gravity [MAX_MODES];
+ bool hideBG [MAX_MODES];
+ int moveX [MAX_MODES];
+ int moveY [MAX_MODES];
+ int size [MAX_MODES];
+ int intensity[MAX_MODES];
+ int speed [MAX_MODES];
+};
+#endif