summaryrefslogtreecommitdiffstats
path: root/ksplashml/themeengine/themeengine.h
diff options
context:
space:
mode:
Diffstat (limited to 'ksplashml/themeengine/themeengine.h')
-rw-r--r--ksplashml/themeengine/themeengine.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/ksplashml/themeengine/themeengine.h b/ksplashml/themeengine/themeengine.h
new file mode 100644
index 000000000..62461cd4e
--- /dev/null
+++ b/ksplashml/themeengine/themeengine.h
@@ -0,0 +1,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