kiconloader.h

00001 /* vi: ts=8 sts=4 sw=4
00002  *
00003  * This file is part of the KDE project, module kdecore.
00004  * Copyright (C) 2000 Geert Jansen <jansen@kde.org>
00005  *                    Antonio Larrosa <larrosa@kde.org>
00006  *
00007  * This is free software; it comes under the GNU Library General
00008  * Public License, version 2. See the file "COPYING.LIB" for the
00009  * exact licensing terms.
00010  */
00011 
00012 #ifndef __KIconLoader_h_Included__
00013 #define __KIconLoader_h_Included__
00014 
00015 #include <qstring.h>
00016 #include <qpixmap.h>
00017 #include <qiconset.h>
00018 
00019 // Grmbl, X headers.....
00020 #ifdef Status
00021 #define KIconLoaderXStatus Status
00022 #undef Status
00023 #endif
00024 #include <qmovie.h>
00025 #ifdef KIconLoaderXStatus
00026 #define Status int
00027 #undef KIconLoaderXStatus
00028 #endif
00029 
00030 #include <kglobal.h>
00031 #include <kinstance.h>
00032 #include <kicontheme.h>
00033 
00034 struct KIconGroup;
00035 class KIconThemeNode;
00036 class KConfig;
00037 struct KIconLoaderPrivate;
00038 class KStandardDirs;
00039 class KIconEffect;
00040 
00041 
00077 class KDECORE_EXPORT KIconLoader
00078 {
00079 public:
00080 
00095     KIconLoader(const QString& appname=QString::null, KStandardDirs *dirs = 0);
00096 
00100     ~KIconLoader();
00101 
00106     void addAppDir(const QString& appname);
00107 
00129     QPixmap loadIcon(const QString& name, KIcon::Group group, int size=0,
00130              int state=KIcon::DefaultState, QString *path_store=0L,
00131              bool canReturnNull=false) const;
00132 
00151     QIconSet loadIconSet(const QString& name, KIcon::Group group, int size,
00152                          bool canReturnNull, bool immediateExistenceCheck);
00153 
00154     // KDE4 merge as (const QString&,KIcon::Group,int=0,bool=false,bool=true);
00171     QIconSet loadIconSet(const QString& name, KIcon::Group group, int size,
00172                          bool canReturnNull);
00173 
00174     // KDE4 merge as (const QString&,KIcon::Group,int=0,bool=false,bool=true);
00186     QIconSet loadIconSet(const QString& name, KIcon::Group group, int size=0);
00187 
00202     QString iconPath(const QString& name, int group_or_size,
00203              bool canReturnNull=false) const;
00204 
00213     QMovie loadMovie(const QString& name, KIcon::Group group, int size=0) const;
00214 
00224     QString moviePath(const QString& name, KIcon::Group group, int size=0) const;
00225 
00236     QStringList loadAnimated(const QString& name, KIcon::Group group, int size=0) const;
00237 
00248     QStringList queryIcons(int group_or_size, KIcon::Context context=KIcon::Any) const;
00249 
00261     QStringList queryIconsByContext(int group_or_size,
00262                     KIcon::Context context=KIcon::Any) const;
00263 
00271     QStringList queryIconsByDir( const QString& iconsDir ) const;
00272 
00278     int currentSize(KIcon::Group group) const;
00279 
00285     KIconTheme *theme() const;
00286 
00291     KIconEffect *iconEffect() const;
00292 
00299     void reconfigure( const QString& _appname, KStandardDirs *_dirs );
00300 
00306     static QPixmap unknown();
00307 
00315     bool alphaBlending( KIcon::Group group ) const;
00316 
00322     void addExtraDesktopThemes();
00323 
00329     bool extraDesktopThemesAdded() const;
00330 
00350     void enableDelayedIconSetLoading( bool enable );
00351 
00359     bool isDelayedIconSetLoadingEnabled() const;
00360 
00361 
00362  private:
00366     void init( const QString& _appname, KStandardDirs *_dirs );
00367 
00373     KIcon findMatchingIcon(const QString& name, int size) const;
00374 
00379      QImage *loadOverlay(const QString& name, int size) const;
00380 
00385     void addAppThemes(const QString& appname);
00386 
00392     void addBaseThemes(KIconThemeNode *node, const QString &appname);
00393 
00399     QString unknownIconPath( int size ) const;
00400 
00416     QString removeIconExtension(const QString &name) const;
00417 
00427     QString removeIconExtensionInternal(const QString &name) const;
00428 
00432     QIconSet loadIconSetNonDelayed( const QString& name, KIcon::Group group,
00433                                     int size, bool canReturnNull );
00434 
00435     // @internal the data object
00436     KIconLoaderPrivate *d;
00437 };
00438 
00443 KDECORE_EXPORT QPixmap DesktopIcon(const QString& name, int size=0,
00444             int state=KIcon::DefaultState,
00445             KInstance *instance=KGlobal::instance());
00446 
00451 KDECORE_EXPORT QPixmap DesktopIcon(const QString& name, KInstance *instance);
00452 
00457 KDECORE_EXPORT QIconSet DesktopIconSet(const QString& name, int size=0,
00458             KInstance *instance=KGlobal::instance());
00459 
00464 KDECORE_EXPORT QPixmap BarIcon(const QString& name, int size=0, int state=KIcon::DefaultState,
00465     KInstance *instance=KGlobal::instance());
00466 
00471 KDECORE_EXPORT QPixmap BarIcon(const QString& name, KInstance *instance);
00472 
00477 KDECORE_EXPORT QIconSet BarIconSet(const QString& name, int size=0,
00478             KInstance *instance=KGlobal::instance());
00479 
00484 KDECORE_EXPORT QPixmap SmallIcon(const QString& name, int size=0,
00485           int state=KIcon::DefaultState,
00486           KInstance *instance=KGlobal::instance());
00487 
00492 KDECORE_EXPORT QPixmap SmallIcon(const QString& name, KInstance *instance);
00493 
00498 KDECORE_EXPORT QIconSet SmallIconSet(const QString& name, int size=0,
00499             KInstance *instance=KGlobal::instance());
00500 
00505 KDECORE_EXPORT QPixmap MainBarIcon(const QString& name, int size=0,
00506             int state=KIcon::DefaultState,
00507             KInstance *instance=KGlobal::instance());
00508 
00513 KDECORE_EXPORT QPixmap MainBarIcon(const QString& name, KInstance *instance);
00514 
00519 KDECORE_EXPORT QIconSet MainBarIconSet(const QString& name, int size=0,
00520             KInstance *instance=KGlobal::instance());
00521 
00526 KDECORE_EXPORT QPixmap UserIcon(const QString& name, int state=KIcon::DefaultState,
00527     KInstance *instance=KGlobal::instance());
00528 
00533 KDECORE_EXPORT QPixmap UserIcon(const QString& name, KInstance *instance);
00534 
00539 KDECORE_EXPORT QIconSet UserIconSet(const QString& name,
00540     KInstance *instance=KGlobal::instance());
00541 
00546 KDECORE_EXPORT int IconSize(KIcon::Group group, KInstance *instance=KGlobal::instance());
00547 
00548 #endif // __KIconLoader_h_Included__
KDE Home | KDE Accessibility Home | Description of Access Keys