kdecore Library API Documentation

kiconloader.h

00001 /* vi: ts=8 sts=4 sw=4
00002  *
00003  * $Id: kiconloader.h,v 1.124 2003/09/02 17:20:14 nhasan Exp $
00004  *
00005  * This file is part of the KDE project, module kdecore.
00006  * Copyright (C) 2000 Geert Jansen <jansen@kde.org>
00007  *                    Antonio Larrosa <larrosa@kde.org>
00008  *
00009  * This is free software; it comes under the GNU Library General
00010  * Public License, version 2. See the file "COPYING.LIB" for the
00011  * exact licensing terms.
00012  */
00013 
00014 #ifndef __KIconLoader_h_Included__
00015 #define __KIconLoader_h_Included__
00016 
00017 #include <qstring.h>
00018 #include <qpixmap.h>
00019 #include <qiconset.h>
00020 
00021 // Grmbl, X headers.....
00022 #ifdef Status
00023 #define KIconLoaderXStatus Status
00024 #undef Status
00025 #endif
00026 #include <qmovie.h>
00027 #ifdef KIconLoaderXStatus
00028 #define Status int
00029 #undef KIconLoaderXStatus
00030 #endif
00031 
00032 #include <kglobal.h>
00033 #include <kinstance.h>
00034 #include <kicontheme.h>
00035 
00036 class KIconGroup;
00037 class KIconThemeNode;
00038 class KConfig;
00039 class KIconLoaderPrivate;
00040 class KStandardDirs;
00041 class KIconEffect;
00042 
00043 
00079 class KIconLoader
00080 {
00081 public:
00082 
00097     KIconLoader(const QString& appname=QString::null, KStandardDirs *dirs = 0);
00098 
00102     ~KIconLoader();
00103 
00108     void addAppDir(const QString& appname);
00109 
00131     QPixmap loadIcon(const QString& name, KIcon::Group group, int size=0,
00132              int state=KIcon::DefaultState, QString *path_store=0L,
00133              bool canReturnNull=false) const;
00134 
00151     QIconSet loadIconSet(const QString& name, KIcon::Group group, int size,
00152                          bool canReturnNull);
00153 
00154     // KDE4 merge as (const QString&,KIcon::Group,int=0,bool=false);
00166     QIconSet loadIconSet(const QString& name, KIcon::Group group, int size=0);
00167 
00182     QString iconPath(const QString& name, int group_or_size,
00183              bool canReturnNull=false) const;
00184 
00193     QMovie loadMovie(const QString& name, KIcon::Group group, int size=0) const;
00194 
00204     QString moviePath(const QString& name, KIcon::Group group, int size=0) const;
00205 
00216     QStringList loadAnimated(const QString& name, KIcon::Group group, int size=0) const;
00217 
00228     QStringList queryIcons(int group_or_size, KIcon::Context context=KIcon::Any) const;
00229 
00241     QStringList queryIconsByContext(int group_or_size,
00242                     KIcon::Context context=KIcon::Any) const;
00243 
00251     QStringList queryIconsByDir( const QString& iconsDir ) const;
00252 
00258     int currentSize(KIcon::Group group) const;
00259 
00265     KIconTheme *theme() const;
00266 
00271     KIconEffect *iconEffect() const;
00272 
00279     void reconfigure( const QString& _appname, KStandardDirs *_dirs );
00280 
00286     static QPixmap unknown();
00287 
00295     bool alphaBlending( KIcon::Group group ) const;
00296 
00302     void addExtraDesktopThemes();
00303 
00309     bool extraDesktopThemesAdded() const;
00310 
00330     void enableDelayedIconSetLoading( bool enable );
00331 
00339     bool isDelayedIconSetLoadingEnabled() const;
00340 
00341 
00342  private:
00346     void init( const QString& _appname, KStandardDirs *_dirs );
00347 
00353     KIcon findMatchingIcon(const QString& name, int size) const;
00354 
00359      QImage *loadOverlay(const QString& name, int size) const;
00360 
00365     void addAppThemes(const QString& appname);
00366 
00372     void addBaseThemes(KIconThemeNode *node, const QString &appname);
00373 
00379     QString unknownIconPath( int size ) const;
00380 
00386     QString removeIconExtension(const QString &name) const;
00387 
00391     QIconSet loadIconSetNonDelayed( const QString& name, KIcon::Group group,
00392                                     int size, bool canReturnNull );
00393 
00394     // @internal the data object
00395     KIconLoaderPrivate *d;
00396 };
00397 
00402 QPixmap DesktopIcon(const QString& name, int size=0,
00403             int state=KIcon::DefaultState,
00404             KInstance *instance=KGlobal::instance());
00405 
00410 QPixmap DesktopIcon(const QString& name, KInstance *instance);
00411 
00416 QIconSet DesktopIconSet(const QString& name, int size=0,
00417             KInstance *instance=KGlobal::instance());
00418 
00423 QPixmap BarIcon(const QString& name, int size=0, int state=KIcon::DefaultState,
00424     KInstance *instance=KGlobal::instance());
00425 
00430 QPixmap BarIcon(const QString& name, KInstance *instance);
00431 
00436 QIconSet BarIconSet(const QString& name, int size=0,
00437             KInstance *instance=KGlobal::instance());
00438 
00443 QPixmap SmallIcon(const QString& name, int size=0,
00444           int state=KIcon::DefaultState,
00445           KInstance *instance=KGlobal::instance());
00446 
00451 QPixmap SmallIcon(const QString& name, KInstance *instance);
00452 
00457 QIconSet SmallIconSet(const QString& name, int size=0,
00458             KInstance *instance=KGlobal::instance());
00459 
00464 QPixmap MainBarIcon(const QString& name, int size=0,
00465             int state=KIcon::DefaultState,
00466             KInstance *instance=KGlobal::instance());
00467 
00472 QPixmap MainBarIcon(const QString& name, KInstance *instance);
00473 
00478 QIconSet MainBarIconSet(const QString& name, int size=0,
00479             KInstance *instance=KGlobal::instance());
00480 
00485 QPixmap UserIcon(const QString& name, int state=KIcon::DefaultState,
00486     KInstance *instance=KGlobal::instance());
00487 
00492 QPixmap UserIcon(const QString& name, KInstance *instance);
00493 
00498 QIconSet UserIconSet(const QString& name,
00499     KInstance *instance=KGlobal::instance());
00500 
00505 int IconSize(KIcon::Group group, KInstance *instance=KGlobal::instance());
00506 
00507 #endif // __KIconLoader_h_Included__
KDE Logo
This file is part of the documentation for kdecore Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Feb 14 09:16:06 2006 by doxygen 1.3.6 written by Dimitri van Heesch, © 1997-2003