blob: 62461cd4eae4f5befd1710d8e562878edc240aaf (
plain)
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
|
/***************************************************************************
* Copyright Brian Ledbetter 2001-2003 <brian@shadowcom.net> *
* Copyright Ravikiran Rajagopal 2003 <ravi@kde.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License (version 2) as *
* published by the Free Software Foundation. (The original KSplash/ML *
* codebase (upto version 0.95.3) is BSD-licensed.) *
* *
***************************************************************************/
#ifndef THEMEENGINE_H
#define THEMEENGINE_H
#include <qstringlist.h>
#include <qvbox.h>
#include <qwidget.h>
#include <kdemacros.h>
class KConfig;
class ObjKsTheme;
class QMouseEvent;
/**
* @short The base for the ThemeEngine's configuration widget.
*/
class KDE_EXPORT ThemeEngineConfig: public QVBox
{
Q_OBJECT
public:
ThemeEngineConfig( QWidget *p, KConfig *c )
:QVBox( p ), mConfig( c )
{}
KConfig* config()const { return mConfig; }
public slots:
virtual void load() {}
virtual void save() {}
protected:
KConfig *mConfig;
};
/**
* @short Base class for all theme engines. Member functions need to be
* overridden by derived classes in order to provide actual functionality.
*/
class KDE_EXPORT ThemeEngine: public QVBox
{
Q_OBJECT
public:
ThemeEngine( QWidget *parent, const char *name, const QStringList &args );
virtual ~ThemeEngine() = 0;
virtual const ThemeEngineConfig *config( QWidget *, KConfig * ) { return 0L; }
virtual ObjKsTheme *ksTheme() { return mTheme; }
virtual bool eventFilter( QObject* o, QEvent* e );
public slots:
virtual void slotUpdateProgress( int ) {}
virtual void slotUpdateSteps( int ) {}
virtual void slotSetText( const QString& ) {}
virtual void slotSetPixmap( const QString& ) {} // use DesktopIcon() to load this.
protected:
void addSplashWindow( QWidget* );
protected:
ObjKsTheme *mTheme;
virtual bool x11Event( XEvent* );
private slots:
void splashWindowDestroyed( QObject* );
private:
class ThemeEnginePrivate;
ThemeEnginePrivate *d;
};
#endif
|