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

//                 Generated by twine

// This file is part of PyKDE4.

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

// PyKDE4 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 General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.


class KEmoticonsProvider : QObject
{
%TypeHeaderCode
#include <kemoticonsprovider.h>
%End


public:
    class Emoticon
    {

    public:
                                Emoticon ();
        bool                    operator < (const KEmoticonsProvider::Emoticon& e) const;
        QString matchText;
        QString matchTextEscaped;
        QString picPath;
        QString picHTMLCode;
    };
// Emoticon



    enum AddEmoticonOption
    {
        DoNotCopy,
        Copy
    };

    explicit                KEmoticonsProvider (QObject* parent /TransferThis/ = 0);
    virtual bool            loadTheme (const QString& path);
    virtual bool            removeEmoticon (const QString& emo);
    virtual bool            addEmoticon (const QString& emo, const QString& text, KEmoticonsProvider::AddEmoticonOption option = KEmoticonsProvider::DoNotCopy);
    virtual void            save ();
    QString                 themeName () const;
    void                    setThemeName (const QString& name);
    QString                 themePath () const;
    QString                 fileName () const;
    QHash<QString,QStringList>  emoticonsMap () const;
// FIXME custon code needed
//    QHash<QChar,QList<KEmoticonsProvider::Emoticon>>  emoticonsIndex () const;
    virtual void            createNew ();

protected:
    void                    clearEmoticonsMap ();
    void                    addEmoticonsMap (QString key, QStringList value);
    void                    removeEmoticonsMap (QString key);
    void                    addEmoticonIndex (const QString& path, const QStringList& emoList);
    void                    removeEmoticonIndex (const QString& path, const QStringList& emoList);
public:
    ~KEmoticonsProvider ();
//FIXME
//ig    QHash<QChar,QList<Emoticon>>  emoticonsIndex () const;
};
// KEmoticonsProvider


