//
//     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 KEmoticonsTheme
{
%TypeHeaderCode
#include <kemoticonstheme.h>
%End

public:

    enum ParseModeEnum
    {
        DefaultParse,
        StrictParse,
        RelaxedParse,
        SkipHTML
    };

    typedef QFlags<KEmoticonsTheme::ParseModeEnum> ParseMode;


    enum TokenType
    {
        Undefined,
        Image,
        Text
    };


    class Token
    {

    public:
                                Token ();
                                Token (KEmoticonsTheme::TokenType t, const QString& m);
                                Token (KEmoticonsTheme::TokenType t, const QString& m, const QString& p, const QString& html);
        KEmoticonsTheme::TokenType type;
        QString text;
        QString picPath;
        QString picHTMLCode;
    };   // Token


public:
                            KEmoticonsTheme ();
                            KEmoticonsTheme (const KEmoticonsTheme& ket);
                            KEmoticonsTheme (KEmoticonsProvider* p);
    QString                 parseEmoticons (const QString& text, KEmoticonsTheme::ParseMode mode = KEmoticonsTheme::DefaultParse, const QStringList& exclude = QStringList()) const;
    QList<KEmoticonsTheme::Token>  tokenize (const QString& message, KEmoticonsTheme::ParseMode mode = KEmoticonsTheme::DefaultParse) const;
    bool                    loadTheme (const QString& path);
    bool                    removeEmoticon (const QString& emo);
    bool                    addEmoticon (const QString& emo, const QString& text, KEmoticonsProvider::AddEmoticonOption option = KEmoticonsProvider::DoNotCopy);
    void                    save ();
    QString                 themeName () const;
    void                    setThemeName (const QString& name);
    QString                 themePath () const;
    QString                 fileName () const;
    QHash<QString,QStringList>  emoticonsMap () const;
    void                    createNew ();
    bool                    isNull () const;
};   // KEmoticonsTheme


