//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 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/>.

namespace Sonnet
{

class Highlighter : QSyntaxHighlighter
{
%TypeHeaderCode
#include <sonnet/highlighter.h>
%End


public:
    explicit                Highlighter (QTextEdit* textEdit, const QString& configFile = QString(), const QColor& col = QColor());
    bool                    spellCheckerFound () const;
    QString                 currentLanguage () const;
    void                    setCurrentLanguage (const QString& lang);
    static QStringList      personalWords ();
    void                    setActive (bool active);
    bool                    isActive () const;
    bool                    automatic () const;
    void                    setAutomatic (bool automatic);

    void                    addWordToDictionary (const QString& word);
    void                    ignoreWord (const QString& word);
    QStringList             suggestionsForWord (const QString& word, int max = 10);
    bool                    isWordMisspelled (const QString& word);

    void                    setMisspelledColor (const QColor& color);

signals:
    void                    activeChanged (const QString& description);
    void                    newSuggestions (const QString& originalWord, const QStringList& suggestions);

protected:
    virtual void            highlightBlock (const QString& text);
    virtual void            setMisspelled (int start, int count);
    virtual void            unsetMisspelled (int start, int count);
    bool                    eventFilter (QObject* o, QEvent* e);
    bool                    intraWordEditing () const;
    void                    setIntraWordEditing (bool editing);

public:
    void                    slotAutoDetection ();
    void                    slotRehighlight ();

private:
                            Highlighter (const Sonnet::Highlighter&);
};   // Highlighter

};   // Sonnet


