/*************************************************************************** * Copyright Brian Ledbetter 2001-2003 * * Copyright Ravikiran Rajagopal 2003 * * * * 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 __OBJKSTHEME_H__ #define __OBJKSTHEME_H__ #include #include #include class KConfig; /** * @short Theme reader. * A Theme is read in from the file * /share/apps/ksplash/Themes//Theme.rc * This controls the behavior, graphics, and appearance * of KSplash completely, and offers a friendlier way * of installing custom splash screens. */ class KDE_EXPORT ObjKsTheme : public QObject { Q_OBJECT public: explicit ObjKsTheme( const TQString& ); virtual ~ObjKsTheme(); void loadCmdLineArgs( TDECmdLineArgs * ); TQString theme() const { return( mActiveTheme ); } TQString themeEngine() const { return( mThemeEngine ); } KConfig *themeConfig() const { return( mThemeConfig ); } TQString themeDir() const { return( mThemeDir ); } bool loColor() const { return( mLoColor ); } bool testing() const { return( mTesting ); } bool managedMode() const { return( mManagedMode ); } TQString icon( int i ) { return (m_icons[i-1].isNull()?(TQString::null):m_icons[i-1]); } TQString text( int i ) { return (m_text[i-1].isNull()?(TQString::null):m_text[i-1]); } TQString locateThemeData( const TQString &resource ); int xineramaScreen() const { return mXineramaScreen; } protected: bool loadThemeRc( const TQString&, bool ); bool loadLocalConfig( const TQString&, bool ); bool loadKConfig( KConfig *, const TQString&, bool ); private: TQString mActiveTheme, mThemeDir; KConfig *mThemeConfig; int mXineramaScreen; bool mLoColor, mTesting, mManagedMode; TQString mThemeEngine; TQString mThemePrefix; TQStringList m_icons, m_text; class ObjKsThemePrivate; ObjKsThemePrivate *d; }; #endif