00001
00002
00003
00004
00005
00006
00007
00008
00009
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
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
00171 QIconSet loadIconSet(const QString& name, KIcon::Group group, int size,
00172 bool canReturnNull);
00173
00174
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
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__