1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/* Slide Show Screen Saver
* (C) 1999 Stefan Taferner <taferner@kde.org>
* Adapted by Laurent MONTEL <lmontel@mandrakesoft.com>
* for MandrakeSoft.
*/
#ifndef MANDRAKE_H
#define MANDRAKE_H
#include <qtimer.h>
#include <qlist.h>
#include <qdialog.h>
#include <qstringlist.h>
#include <qpixmap.h>
#include <qwidget.h>
#include <qpainter.h>
#include <qimage.h>
#include <kscreensaver.h>
class krozatSaver;
class QCheckBox;
class QSlider;
class QComboBox;
class QLabel;
//-----------------------------------------------------------------------------
class krozatSaver: public KScreenSaver
{
Q_OBJECT
public:
krozatSaver( WId id );
virtual ~krozatSaver();
typedef int (krozatSaver::*EffectMethod)(bool);
void readConfig();
void restart();
protected slots:
void slotTimeout();
protected:
void blank();
/** Load list of images from directory */
virtual void loadDirectory();
/** Load next image from list. If the file cannot be read
it is automatically removed from the file list.
mImage contains the image after loading. */
virtual void loadNextImage();
/** Show next screen, completely, without transition. */
virtual void showNextScreen();
/** Set loaded image to next-screen buffer. */
virtual void createNextScreen();
/** Initialize next-screen buffer. */
virtual void initNextScreen();
/** Register effect methods in effect list. */
virtual void registerEffects();
/** Various effects. If adding one, do not forget to manually
add the effect to the list in the registerEffects() method. */
int effectHorizLines(bool doInit);
int effectVertLines(bool doInit);
int effectRandom(bool doInit);
int effectGrowing(bool doInit);
int effectChessboard(bool doInit);
int effectIncomingEdges(bool doInit);
int effectBlobs(bool doInit);
int effectCircleOut(bool doInit);
int effectSweep(bool doInit);
int effectMeltdown(bool doInit);
int effectSpiralIn(bool doInit);
int effectMultiCircleOut(bool doInit);
protected:
/** Init mPainter with next-screen's pixmap and call
mPainter.begin(&mWidget) */
void startPainter(Qt::PenStyle penStyle=NoPen);
protected:
bool mEffectRunning;
QTimer mTimer;
int mColorContext;
QStringList mFileList;
int mFileIdx;
QImage mImage;
QPixmap mNextScreen;
EffectMethod* mEffectList;
EffectMethod mEffect;
int mNumEffects;
QPainter mPainter;
QString mImageName;
// config settings:
int mDelay;
QString mDirectory;
// values for state of various effects:
int mx, my, mw, mh, mdx, mdy, mix, miy, mi, mj, mSubType;
int mx0, my0, mx1, my1, mwait;
double mfx, mfy, mAlpha, mfd;
int* mIntArray;
};
//-----------------------------------------------------------------------------
class krozatSetup : public QDialog
{
Q_OBJECT
public:
krozatSetup(QWidget *parent=NULL, const char *name=NULL);
void minSize(QWidget* aWidget);
protected slots:
void slotOkPressed();
void slotAbout();
};
#endif
|