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 <tqstring.h> 00016 #include <tqpixmap.h> 00017 #include <tqiconset.h> 00018 00019 // Grmbl, X headers..... 00020 #ifdef Status 00021 #define KIconLoaderXStatus Status 00022 #undef Status 00023 #endif 00024 #include <tqmovie.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 TQString& appname=TQString::null, KStandardDirs *dirs = 0); 00096 00100 ~KIconLoader(); 00101 00106 void addAppDir(const TQString& appname); 00107 00129 TQPixmap loadIcon(const TQString& name, KIcon::Group group, int size=0, 00130 int state=KIcon::DefaultState, TQString *path_store=0L, 00131 bool canReturnNull=false) const; 00132 00151 TQIconSet loadIconSet(const TQString& name, KIcon::Group group, int size, 00152 bool canReturnNull, bool immediateExistenceCheck); 00153 00154 // KDE4 merge as (const TQString&,KIcon::Group,int=0,bool=false,bool=true); 00171 TQIconSet loadIconSet(const TQString& name, KIcon::Group group, int size, 00172 bool canReturnNull); 00173 00174 // KDE4 merge as (const TQString&,KIcon::Group,int=0,bool=false,bool=true); 00186 TQIconSet loadIconSet(const TQString& name, KIcon::Group group, int size=0); 00187 00202 TQString iconPath(const TQString& name, int group_or_size, 00203 bool canReturnNull=false) const; 00204 00213 TQMovie loadMovie(const TQString& name, KIcon::Group group, int size=0) const; 00214 00224 TQString moviePath(const TQString& name, KIcon::Group group, int size=0) const; 00225 00236 TQStringList loadAnimated(const TQString& name, KIcon::Group group, int size=0) const; 00237 00248 TQStringList queryIcons(int group_or_size, KIcon::Context context=KIcon::Any) const; 00249 00261 TQStringList queryIconsByContext(int group_or_size, 00262 KIcon::Context context=KIcon::Any) const; 00263 00267 bool hasContext( KIcon::Context context ) const; 00268 00276 TQStringList queryIconsByDir( const TQString& iconsDir ) const; 00277 00283 int currentSize(KIcon::Group group) const; 00284 00290 KIconTheme *theme() const; 00291 00296 KIconEffect *iconEffect() const; 00297 00304 void reconfigure( const TQString& _appname, KStandardDirs *_dirs ); 00305 00311 static TQPixmap unknown(); 00312 00320 bool alphaBlending( KIcon::Group group ) const; 00321 00327 void addExtraDesktopThemes(); 00328 00334 bool extraDesktopThemesAdded() const; 00335 00355 void enableDelayedIconSetLoading( bool enable ); 00356 00364 bool isDelayedIconSetLoadingEnabled() const; 00365 00366 00367 private: 00371 void init( const TQString& _appname, KStandardDirs *_dirs ); 00372 00378 KIcon findMatchingIcon(const TQString& name, int size) const; 00379 00384 TQImage *loadOverlay(const TQString& name, int size) const; 00385 00390 void addAppThemes(const TQString& appname); 00391 00397 void addBaseThemes(KIconThemeNode *node, const TQString &appname); 00398 00404 TQString unknownIconPath( int size ) const; 00405 00421 TQString removeIconExtension(const TQString &name) const; 00422 00432 TQString removeIconExtensionInternal(const TQString &name) const; 00433 00437 TQIconSet loadIconSetNonDelayed( const TQString& name, KIcon::Group group, 00438 int size, bool canReturnNull ); 00439 00440 // @internal the data object 00441 KIconLoaderPrivate *d; 00442 }; 00443 00448 KDECORE_EXPORT TQPixmap DesktopIcon(const TQString& name, int size=0, 00449 int state=KIcon::DefaultState, 00450 KInstance *instance=KGlobal::instance()); 00451 00456 KDECORE_EXPORT TQPixmap DesktopIcon(const TQString& name, KInstance *instance); 00457 00462 KDECORE_EXPORT TQIconSet DesktopIconSet(const TQString& name, int size=0, 00463 KInstance *instance=KGlobal::instance()); 00464 00469 KDECORE_EXPORT TQPixmap BarIcon(const TQString& name, int size=0, int state=KIcon::DefaultState, 00470 KInstance *instance=KGlobal::instance()); 00471 00476 KDECORE_EXPORT TQPixmap BarIcon(const TQString& name, KInstance *instance); 00477 00482 KDECORE_EXPORT TQIconSet BarIconSet(const TQString& name, int size=0, 00483 KInstance *instance=KGlobal::instance()); 00484 00489 KDECORE_EXPORT TQPixmap SmallIcon(const TQString& name, int size=0, 00490 int state=KIcon::DefaultState, 00491 KInstance *instance=KGlobal::instance()); 00492 00497 KDECORE_EXPORT TQPixmap SmallIcon(const TQString& name, KInstance *instance); 00498 00503 KDECORE_EXPORT TQIconSet SmallIconSet(const TQString& name, int size=0, 00504 KInstance *instance=KGlobal::instance()); 00505 00510 KDECORE_EXPORT TQPixmap MainBarIcon(const TQString& name, int size=0, 00511 int state=KIcon::DefaultState, 00512 KInstance *instance=KGlobal::instance()); 00513 00518 KDECORE_EXPORT TQPixmap MainBarIcon(const TQString& name, KInstance *instance); 00519 00524 KDECORE_EXPORT TQIconSet MainBarIconSet(const TQString& name, int size=0, 00525 KInstance *instance=KGlobal::instance()); 00526 00531 KDECORE_EXPORT TQPixmap UserIcon(const TQString& name, int state=KIcon::DefaultState, 00532 KInstance *instance=KGlobal::instance()); 00533 00538 KDECORE_EXPORT TQPixmap UserIcon(const TQString& name, KInstance *instance); 00539 00544 KDECORE_EXPORT TQIconSet UserIconSet(const TQString& name, 00545 KInstance *instance=KGlobal::instance()); 00546 00551 KDECORE_EXPORT int IconSize(KIcon::Group group, KInstance *instance=KGlobal::instance()); 00552 00553 #endif // __KIconLoader_h_Included__