// Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.


namespace Plasma
{

class Theme : QObject
{
%TypeHeaderCode
#include <plasma/theme.h>
%End


public:

    enum ColorRole
    {
        TextColor,
        HighlightColor,
        BackgroundColor,
        ButtonTextColor,
        ButtonBackgroundColor
    };


    enum FontRole
    {
        DefaultFont,
        DesktopFont
    };

    static Plasma::Theme*   defaultTheme ();
    explicit                Theme (QObject* parent /TransferThis/ = 0);
    explicit                Theme (const QString& themeName, QObject* parent /TransferThis/ = 0);
    static Plasma::PackageStructure::Ptr  packageStructure ();
    static KPluginInfo::List  listThemeInfo ();
    void                    setThemeName (const QString& themeName);
    QString                 themeName () const;
    QString                 imagePath (const QString& name) const;
    QString                 wallpaperPath (const QSize& size = QSize()) const;
    bool                    currentThemeHasImage (const QString& name) const;
    KSharedConfigPtr        colorScheme () const;
    QColor                  color (Plasma::Theme::ColorRole role) const;
    void                    setFont (const QFont& font, Plasma::Theme::FontRole role = Plasma::Theme::DefaultFont);
    QFont                   font (Plasma::Theme::FontRole role) const;
    QFontMetrics            fontMetrics () const;
    bool                    windowTranslucencyEnabled () const;
    void                    setUseGlobalSettings (bool useGlobal);
    bool                    useGlobalSettings () const;
    bool                    useNativeWidgetStyle () const;
    bool                    findInCache (const QString& key, QPixmap& pix);
    bool                    findInCache (const QString& key, QPixmap& pix, unsigned int lastModified);
    void                    insertIntoCache (const QString& key, const QPixmap& pix);
    void                    setCacheLimit (int kbytes);
    bool                    findInRectsCache (const QString& image, const QString& element, QRectF& rect) const;
    void                    insertIntoRectsCache (const QString& image, const QString& element, const QRectF& rect);
    void                    invalidateRectsCache (const QString& image);
    void                    releaseRectsCache (const QString& image);

signals:
    void                    themeChanged ();

public:
    void                    settingsChanged ();
};   // Theme

};   // Plasma


