kicontheme.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __KIconTheme_h_Included__
00016 #define __KIconTheme_h_Included__
00017
00018 #include <qstring.h>
00019 #include <qstringlist.h>
00020 #include <qptrlist.h>
00021
00022 class KConfig;
00023 class KIconThemeDir;
00024
00025 class KIconThemePrivate;
00026
00027 class KIconPrivate;
00028
00036 class KIcon
00037 {
00038 public:
00039 KIcon() { size = 0; }
00040
00044 bool isValid() const { return size != 0; }
00045
00049 enum Context {
00050 Any,
00051 Action,
00052 Application,
00053 Device,
00054 FileSystem,
00055 MimeType
00056 };
00057
00061 enum Type {
00062 Fixed,
00063 Scalable,
00064 Threshold
00065 };
00066
00070 enum MatchType {
00071 MatchExact,
00072 MatchBest
00073
00074 };
00075
00076
00077
00081 enum Group { NoGroup=-1, Desktop=0, FirstGroup=Desktop, Toolbar,
00082 MainToolbar, Small, Panel, LastGroup, User };
00083
00087 enum StdSizes {
00089 SizeSmall=16,
00091 SizeMedium=32,
00093 SizeLarge=48 };
00094
00098 enum States { DefaultState,
00099 ActiveState,
00100 DisabledState,
00101 LastState
00102 };
00103
00109 enum Overlays {
00110 LockOverlay=0x100,
00111 ZipOverlay=0x200,
00112 LinkOverlay=0x400,
00113 HiddenOverlay=0x800,
00114 ShareOverlay=0x1000,
00115 OverlayMask = ~0xff
00116 };
00117
00121 int size;
00122
00126 Context context;
00127
00131 Type type;
00132
00136 int threshold;
00137
00141 QString path;
00142
00143 private:
00144 KIconPrivate *d;
00145 };
00146
00147 inline KIcon::Group& operator++(KIcon::Group& group) { group = static_cast<KIcon::Group>(group+1); return group; }
00148 inline KIcon::Group operator++(KIcon::Group& group,int) { KIcon::Group ret = group; ++group; return ret; }
00149
00155 class KIconTheme
00156 {
00157 public:
00164 KIconTheme(const QString& name, const QString& appName=QString::null);
00165 ~KIconTheme();
00166
00171 QString name() const { return mName; }
00172
00178 QString description() const { return mDesc; }
00179
00185 QString example() const;
00186
00191 QString screenshot() const;
00192
00197 QString linkOverlay() const;
00198
00203 QString zipOverlay() const;
00204
00209 QString lockOverlay() const;
00210
00216 QString shareOverlay () const;
00217
00222 QString dir() const { return mDir; }
00223
00228 QStringList inherits() const { return mInherits; }
00229
00234 bool isValid() const;
00235
00241 bool isHidden() const;
00242
00248 int depth() const { return mDepth; }
00249
00255 int defaultSize(KIcon::Group group) const;
00256
00262 QValueList<int> querySizes(KIcon::Group group) const;
00263
00270 QStringList queryIcons(int size, KIcon::Context context = KIcon::Any) const;
00271
00278 QStringList queryIconsByContext(int size, KIcon::Context context = KIcon::Any) const;
00279
00280
00291 KIcon iconPath(const QString& name, int size, KIcon::MatchType match) const;
00292
00297 static QStringList list();
00298
00303 static QString current();
00304
00308 static void reconfigure();
00309
00315 static QString defaultThemeName();
00316
00317 private:
00318 int mDefSize[8];
00319 QValueList<int> mSizes[8];
00320
00321 int mDepth;
00322 QString mDir, mName, mDesc;
00323 QStringList mInherits;
00324 QPtrList<KIconThemeDir> mDirs;
00325 KIconThemePrivate *d;
00326
00327 static QString *_theme;
00328 static QStringList *_theme_list;
00329 };
00330
00331 #endif
This file is part of the documentation for kdelibs Version 3.1.0.