kiconloader.h
00001 /* vi: ts=8 sts=4 sw=4 00002 * 00003 * This file is part of the KDE project, module tdecore. 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 __TDEIconLoader_h_Included__ 00013 #define __TDEIconLoader_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 TDEIconLoaderXStatus Status 00022 #undef Status 00023 #endif 00024 #include <tqmovie.h> 00025 #ifdef TDEIconLoaderXStatus 00026 #define Status int 00027 #undef TDEIconLoaderXStatus 00028 #endif 00029 00030 #include <tdeglobal.h> 00031 #include <kinstance.h> 00032 #include <kicontheme.h> 00033 00034 struct TDEIconGroup; 00035 class TDEIconThemeNode; 00036 class TDEConfig; 00037 struct TDEIconLoaderPrivate; 00038 class TDEStandardDirs; 00039 class TDEIconEffect; 00040 00041 00077 class TDECORE_EXPORT TDEIconLoader 00078 { 00079 public: 00080 00095 TDEIconLoader(const TQString& appname=TQString::null, TDEStandardDirs *dirs = 0); 00096 00100 ~TDEIconLoader(); 00101 00106 void addAppDir(const TQString& appname); 00107 00129 TQPixmap loadIcon(const TQString& name, TDEIcon::Group group, int size=0, 00130 int state=TDEIcon::DefaultState, TQString *path_store=0L, 00131 bool canReturnNull=false) const; 00132 00151 TQIconSet loadIconSet(const TQString& name, TDEIcon::Group group, int size, 00152 bool canReturnNull, bool immediateExistenceCheck); 00153 00154 // KDE4 merge as (const TQString&,TDEIcon::Group,int=0,bool=false,bool=true); 00171 TQIconSet loadIconSet(const TQString& name, TDEIcon::Group group, int size, 00172 bool canReturnNull); 00173 00174 // KDE4 merge as (const TQString&,TDEIcon::Group,int=0,bool=false,bool=true); 00186 TQIconSet loadIconSet(const TQString& name, TDEIcon::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, TDEIcon::Group group, int size=0) const; 00214 00224 TQString moviePath(const TQString& name, TDEIcon::Group group, int size=0) const; 00225 00236 TQStringList loadAnimated(const TQString& name, TDEIcon::Group group, int size=0) const; 00237 00248 TQStringList queryIcons(int group_or_size, TDEIcon::Context context=TDEIcon::Any) const; 00249 00261 TQStringList queryIconsByContext(int group_or_size, 00262 TDEIcon::Context context=TDEIcon::Any) const; 00263 00267 bool hasContext( TDEIcon::Context context ) const; 00268 00276 TQStringList queryIconsByDir( const TQString& iconsDir ) const; 00277 00283 int currentSize(TDEIcon::Group group) const; 00284 00290 TDEIconTheme *theme() const; 00291 00296 TDEIconEffect *iconEffect() const; 00297 00304 void reconfigure( const TQString& _appname, TDEStandardDirs *_dirs ); 00305 00311 static TQPixmap unknown(); 00312 00320 bool alphaBlending( TDEIcon::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, TDEStandardDirs *_dirs ); 00372 00378 TDEIcon 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(TDEIconThemeNode *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, TDEIcon::Group group, 00438 int size, bool canReturnNull ); 00439 00440 // @internal the data object 00441 TDEIconLoaderPrivate *d; 00442 }; 00443 00448 TDECORE_EXPORT TQPixmap DesktopIcon(const TQString& name, int size=0, 00449 int state=TDEIcon::DefaultState, 00450 TDEInstance *instance=TDEGlobal::instance()); 00451 00456 TDECORE_EXPORT TQPixmap DesktopIcon(const TQString& name, TDEInstance *instance); 00457 00462 TDECORE_EXPORT TQIconSet DesktopIconSet(const TQString& name, int size=0, 00463 TDEInstance *instance=TDEGlobal::instance()); 00464 00469 TDECORE_EXPORT TQPixmap BarIcon(const TQString& name, int size=0, int state=TDEIcon::DefaultState, 00470 TDEInstance *instance=TDEGlobal::instance()); 00471 00476 TDECORE_EXPORT TQPixmap BarIcon(const TQString& name, TDEInstance *instance); 00477 00482 TDECORE_EXPORT TQIconSet BarIconSet(const TQString& name, int size=0, 00483 TDEInstance *instance=TDEGlobal::instance()); 00484 00489 TDECORE_EXPORT TQPixmap SmallIcon(const TQString& name, int size=0, 00490 int state=TDEIcon::DefaultState, 00491 TDEInstance *instance=TDEGlobal::instance()); 00492 00497 TDECORE_EXPORT TQPixmap SmallIcon(const TQString& name, TDEInstance *instance); 00498 00503 TDECORE_EXPORT TQIconSet SmallIconSet(const TQString& name, int size=0, 00504 TDEInstance *instance=TDEGlobal::instance()); 00505 00510 TDECORE_EXPORT TQPixmap MainBarIcon(const TQString& name, int size=0, 00511 int state=TDEIcon::DefaultState, 00512 TDEInstance *instance=TDEGlobal::instance()); 00513 00518 TDECORE_EXPORT TQPixmap MainBarIcon(const TQString& name, TDEInstance *instance); 00519 00524 TDECORE_EXPORT TQIconSet MainBarIconSet(const TQString& name, int size=0, 00525 TDEInstance *instance=TDEGlobal::instance()); 00526 00531 TDECORE_EXPORT TQPixmap UserIcon(const TQString& name, int state=TDEIcon::DefaultState, 00532 TDEInstance *instance=TDEGlobal::instance()); 00533 00538 TDECORE_EXPORT TQPixmap UserIcon(const TQString& name, TDEInstance *instance); 00539 00544 TDECORE_EXPORT TQIconSet UserIconSet(const TQString& name, 00545 TDEInstance *instance=TDEGlobal::instance()); 00546 00551 TDECORE_EXPORT int IconSize(TDEIcon::Group group, TDEInstance *instance=TDEGlobal::instance()); 00552 00553 #endif // __TDEIconLoader_h_Included__