/* vi: ts=8 sts=4 sw=4
*
* $Id: kicontheme.h,v 1.13 2000/10/13 23:22:27 antlarr Exp $
*
* This file is part of the KDE project, module kdecore.
* Copyright (C) 2000 Geert Jansen <jansen@kde.org>
* Antonio Larrosa <larrosa@kde.org>
*
* This is free software; it comes under the GNU Library General
* Public License, version 2. See the file "COPYING.LIB" for the
* exact licensing terms.
*
*/
#ifndef __KIconTheme_h_Included__
#define __KIconTheme_h_Included__
#include <qstring.h>
#include <qstringlist.h>
#include <qlist.h>
class KConfig;
class KIconThemeDir;
class KIconThemePrivate;
class KIconPrivate;
/**
* One icon as found by KIconTheme. Also serves as a namespace containing
* icon related constants.
*/
class KIcon
{
public:
KIcon() { size = 0; }
/** Return true if this icon is valid, false otherwise. */
bool isValid() const { return size != 0; }
enum Context { Any, Action, Application, Device, FileSystem, MimeType };
enum Types { Fixed, Scalable };
enum MatchType { MatchExact, MatchBest };
// if you add a group here, make sure to change the config reading in
// KIconLoader too
enum Group { NoGroup=-1, Desktop=0, Toolbar, MainToolbar, Small,
Panel, LastGroup, User };
enum StdSizes { SizeSmall=16, SizeMedium=32, SizeLarge=48 };
enum States { DefaultState, ActiveState, DisabledState, LastState };
enum Overlays { LockOverlay=0x100, ZipOverlay=0x200, LinkOverlay=0x400,
OverlayMask = ~0xff };
/** The size in pixels of the icon. */
int size;
/** The context of the icon. */
int context;
/** The type of the icon: Fixed or Scalable. */
int type;
/** The full path of the icon. */
QString path;
private:
KIconPrivate *d;
};
/**
* Class to use/access icon themes in KDE. This class is used by the
* iconloader but can be used by others too.
*/
class KIconTheme
{
public:
/** Load an icon theme by name. */
KIconTheme(const QString& name, const QString& appName=QString::null);
~KIconTheme();
/** The stylized name of the icont theme. */
QString name() const { return mName; }
/** A description for the icon theme. */
QString description() const { return mDesc; }
/** Return the name of the "example" icon. */
QString example() const;
/** Return the name of the screenshot. */
QString screenshot() const;
/** Returns the name of this theme's link overlay. */
QString linkOverlay() const;
/** Returns the name of this theme's zip overlay. */
QString zipOverlay() const;
/** Returns the name of this theme's lock overlay. */
QString lockOverlay() const;
/** Returns the toplevel theme directory. */
QString dir() const { return mDir; }
/** The themes this icon theme falls back on. */
QStringList inherits() const { return mInherits; }
/** The icon theme exists? */
bool isValid() const;
/** The mimimum display depth required for this theme. This can either
* be 8 or 32 */
int depth() const { return mDepth; }
/** The default size of this theme for a certain icon group.
* @param group The icon group. See @ref #KIcon::Group.
* @return The default size in pixels for the given icon group.
*/
int defaultSize(int group) const;
/** Query available sizes for a group. */
QValueList<int> querySizes(int group) const;
/** Query available icons for a size and context. */
QStringList queryIcons(int size, int context = KIcon::Any) const;
/** Query available icons for a context and preferred size. */
QStringList queryIconsByContext(int size, int context = KIcon::Any) const;
/** Lookup an icon in the theme.
* @param name The name of the icon, without extension.
* @param size The desired size of the icon.
* @param match The matching mode. KIcon::MatchExact returns an icon
* only if matches exactly. KIcon::MatchBest returns the best matching
* icon.
* @return A KIcon class that describes the icon. If an icon is found,
* @ref #KIcon::isValid will return true, and false otherwise.
*/
KIcon iconPath(const QString& name, int size, int match) const;
/** List all icon themes installed on the system, global and local. */
static QStringList list();
/** Returns the current icon theme. */
static QString current();
static void reconfigure();
private:
int mDefSize[8];
QValueList<int> mSizes[8];
int mDepth;
QString mDir, mName, mDesc;
QStringList mInherits;
QList<KIconThemeDir> mDirs;
KIconThemePrivate *d;
static QString *_theme;
static QStringList *_theme_list;
};
#endif
| Generated by: root@powerpc.ports.openbsd.org on Tue Apr 24 22:59:46 2001, using kdoc 2.0a53. |