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
00149 QIconSet loadIconSet(const QString& name, KIcon::Group group, int size,
00150 bool canReturnNull);
00151
00152
00164 QIconSet loadIconSet(const QString& name, KIcon::Group group, int size=0);
00165
00180 QString iconPath(const QString& name, int group_or_size,
00181 bool canReturnNull=false) const;
00182
00191 QMovie loadMovie(const QString& name, KIcon::Group group, int size=0) const;
00192
00202 QString moviePath(const QString& name, KIcon::Group group, int size=0) const;
00203
00214 QStringList loadAnimated(const QString& name, KIcon::Group group, int size=0) const;
00215
00226 QStringList queryIcons(int group_or_size, KIcon::Context context=KIcon::Any) const;
00227
00239 QStringList queryIconsByContext(int group_or_size,
00240 KIcon::Context context=KIcon::Any) const;
00241
00249 QStringList queryIconsByDir( const QString& iconsDir ) const;
00250
00256 int currentSize(KIcon::Group group) const;
00257
00263 KIconTheme *theme() const;
00264
00269 KIconEffect *iconEffect() const;
00270
00277 void reconfigure( const QString& _appname, KStandardDirs *_dirs );
00278
00284 static QPixmap unknown();
00285
00293 bool alphaBlending( KIcon::Group group ) const;
00294
00300 void addExtraDesktopThemes();
00301
00307 bool extraDesktopThemesAdded() const;
00308
00328 void enableDelayedIconSetLoading( bool enable );
00329
00337 bool isDelayedIconSetLoadingEnabled() const;
00338
00339
00340 private:
00344 void init( const QString& _appname, KStandardDirs *_dirs );
00345
00351 KIcon findMatchingIcon(const QString& name, int size) const;
00352
00357 QImage *loadOverlay(const QString& name, int size) const;
00358
00363 void addAppThemes(const QString& appname);
00364
00370 void addBaseThemes(KIconThemeNode *node, const QString &appname);
00371
00377 QString unknownIconPath( int size ) const;
00378
00384 QString removeIconExtension(const QString &name) const;
00385
00389 QIconSet loadIconSetNonDelayed( const QString& name, KIcon::Group group,
00390 int size, bool canReturnNull );
00391
00392
00393 KIconLoaderPrivate *d;
00394 };
00395
00400 KDECORE_EXPORT QPixmap DesktopIcon(const QString& name, int size=0,
00401 int state=KIcon::DefaultState,
00402 KInstance *instance=KGlobal::instance());
00403
00408 KDECORE_EXPORT QPixmap DesktopIcon(const QString& name, KInstance *instance);
00409
00414 KDECORE_EXPORT QIconSet DesktopIconSet(const QString& name, int size=0,
00415 KInstance *instance=KGlobal::instance());
00416
00421 KDECORE_EXPORT QPixmap BarIcon(const QString& name, int size=0, int state=KIcon::DefaultState,
00422 KInstance *instance=KGlobal::instance());
00423
00428 KDECORE_EXPORT QPixmap BarIcon(const QString& name, KInstance *instance);
00429
00434 KDECORE_EXPORT QIconSet BarIconSet(const QString& name, int size=0,
00435 KInstance *instance=KGlobal::instance());
00436
00441 KDECORE_EXPORT QPixmap SmallIcon(const QString& name, int size=0,
00442 int state=KIcon::DefaultState,
00443 KInstance *instance=KGlobal::instance());
00444
00449 KDECORE_EXPORT QPixmap SmallIcon(const QString& name, KInstance *instance);
00450
00455 KDECORE_EXPORT QIconSet SmallIconSet(const QString& name, int size=0,
00456 KInstance *instance=KGlobal::instance());
00457
00462 KDECORE_EXPORT QPixmap MainBarIcon(const QString& name, int size=0,
00463 int state=KIcon::DefaultState,
00464 KInstance *instance=KGlobal::instance());
00465
00470 KDECORE_EXPORT QPixmap MainBarIcon(const QString& name, KInstance *instance);
00471
00476 KDECORE_EXPORT QIconSet MainBarIconSet(const QString& name, int size=0,
00477 KInstance *instance=KGlobal::instance());
00478
00483 KDECORE_EXPORT QPixmap UserIcon(const QString& name, int state=KIcon::DefaultState,
00484 KInstance *instance=KGlobal::instance());
00485
00490 KDECORE_EXPORT QPixmap UserIcon(const QString& name, KInstance *instance);
00491
00496 KDECORE_EXPORT QIconSet UserIconSet(const QString& name,
00497 KInstance *instance=KGlobal::instance());
00498
00503 KDECORE_EXPORT int IconSize(KIcon::Group group, KInstance *instance=KGlobal::instance());
00504
00505 #endif // __KIconLoader_h_Included__