diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:15:56 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:15:56 +0000 |
commit | 50b48aec6ddd451a6d1709c0942477b503457663 (patch) | |
tree | a9ece53ec06fd0a2819de7a2a6de997193566626 /src/k3bthememanager.h | |
download | k3b-50b48aec6ddd451a6d1709c0942477b503457663.tar.gz k3b-50b48aec6ddd451a6d1709c0942477b503457663.zip |
Added abandoned KDE3 version of K3B
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/k3b@1084400 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/k3bthememanager.h')
-rw-r--r-- | src/k3bthememanager.h | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/src/k3bthememanager.h b/src/k3bthememanager.h new file mode 100644 index 0000000..f00e62f --- /dev/null +++ b/src/k3bthememanager.h @@ -0,0 +1,146 @@ +/* + * + * $Id$ + * Copyright (C) 2003 Sebastian Trueg <trueg@k3b.org> + * + * This file is part of the K3b project. + * Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * See the file "COPYING" for the exact licensing terms. + */ + +#ifndef _K3B_THEME_MANAGER_H_ +#define _K3B_THEME_MANAGER_H_ + +#include <qobject.h> +#include <qvaluelist.h> +#include <qstring.h> +#include <qmap.h> +#include <qcolor.h> +#include <qpixmap.h> + + + +class KConfigBase; + + +class K3bTheme +{ + public: + K3bTheme(); + + QColor backgroundColor() const; + QColor foregroundColor() const; + + enum PixmapType { + MEDIA_AUDIO, /**< Media information header, right side when showing an audio CD. */ + MEDIA_DATA, /**< Media information header, right side when showing a data media. */ + MEDIA_VIDEO, /**< Media information header, right side when showing a video media. */ + MEDIA_EMPTY, /**< Media information header, right side when showing an empty media. */ + MEDIA_MIXED, /**< Media information header, right side when showing a mixed mode CD. */ + MEDIA_NONE, /**< Media information header, right side default pixmap (no media). */ + MEDIA_LEFT, /**< Media information header, left side. */ + PROGRESS_WORKING, /**< Progress dialog, left top while working. */ + PROGRESS_SUCCESS, /**< Progress dialog, left top on success. */ + PROGRESS_FAIL, /**< Progress dialog, left top on failure. */ + PROGRESS_RIGHT, /**< Progress dialog, right top. */ + DIALOG_LEFT, /**< Action dialog, left top. */ + DIALOG_RIGHT, /**< Action dialog, right top. */ + SPLASH, /**< K3b splash screen. Size not important. */ + PROJECT_LEFT, /**< Project header left side. */ + PROJECT_RIGHT, /**< Project header right side. */ + WELCOME_BG /**< Background pixmap of the welcome window. */ + }; + + enum BackgroundMode { + BG_TILE, /**< Keep the pixmap's size and tile the welcome widget */ + BG_SCALE /**< Scale the pixmap to fill the welcome widget. */ + }; + + const QPixmap& pixmap( PixmapType ) const; + + /** + * \deprecated use pixmap( PixmapType ) + */ + const QPixmap& pixmap( const QString& name ) const; + + BackgroundMode backgroundMode() const; + + const QString& name() const { return m_name; } + const QString& author() const { return m_author; } + const QString& comment() const { return m_comment; } + const QString& version() const { return m_version; } + + /** + * Global themes are installed for all users and cannot be deleted. + */ + bool global() const { return !local(); } + + /** + * Local themes are installed in the user's home directory and can be deleted. + */ + bool local() const { return m_local; } + + const QString& path() const { return m_path; } + + static QString filenameForPixmapType( PixmapType ); + + private: + QString m_path; + bool m_local; + QString m_name; + QString m_author; + QString m_comment; + QString m_version; + QColor m_bgColor; + QColor m_fgColor; + BackgroundMode m_bgMode; + + mutable QMap<QString, QPixmap> m_pixmapMap; + + QPixmap m_emptyPixmap; + + friend class K3bThemeManager; +}; + + +class K3bThemeManager : public QObject +{ + Q_OBJECT + + public: + K3bThemeManager( QObject* parent = 0, const char* name = 0 ); + ~K3bThemeManager(); + + const QValueList<K3bTheme*>& themes() const; + + /** + * This is never null. If no theme could be found an empty dummy theme + * will be returnes which does not contains any pixmaps. + */ + K3bTheme* currentTheme() const; + K3bTheme* findTheme( const QString& ) const; + + signals: + void themeChanged(); + void themeChanged( K3bTheme* ); + + public slots: + void readConfig( KConfigBase* ); + void saveConfig( KConfigBase* ); + void setCurrentTheme( const QString& ); + void setCurrentTheme( K3bTheme* ); + void loadThemes(); + + private: + void loadTheme( const QString& name ); + + class Private; + Private* d; +}; + +#endif |