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



class KTextEditSpellInterface
{
%TypeHeaderCode
#include <ktextedit.h>
%End

public:
    virtual bool            isSpellCheckingEnabled () const = 0;
    virtual void            setSpellCheckingEnabled (bool enable) = 0;
    virtual bool            shouldBlockBeSpellChecked (const QString& block) const = 0;
};   // KTextEditSpellInterface


class KTextEdit : QTextEdit
{
%TypeHeaderCode
#include <ktextedit.h>
%End


public:
    explicit                KTextEdit (const QString& text, QWidget* parent /TransferThis/ = 0);
    explicit                KTextEdit (QWidget* parent /TransferThis/ = 0);
    virtual void            setReadOnly (bool readOnly);
    void                    setCheckSpellingEnabled (bool check);
    bool                    checkSpellingEnabled () const;
    void                    highlightWord (int length, int pos);
    void                    setSpellCheckingConfigFileName (const QString& fileName);
    virtual void            createHighlighter ();
    Sonnet::Highlighter*    highlighter () const;
    void                    setHighlighter (Sonnet::Highlighter* _highLighter);
    QMenu*                  mousePopupMenu ();
    void                    enableFindReplace (bool enabled);
    void                    setSpellInterface (KTextEditSpellInterface* spellInterface);
    const QString&          spellCheckingLanguage () const;

signals:
    void                    checkSpellingChanged (bool);
    void                    spellCheckStatus (const QString&);
    void                    languageChanged (const QString& language);

public:
    void                    setSpellCheckingLanguage (const QString& language);
    void                    checkSpelling ();
    void                    showSpellConfigDialog (const QString& configFileName, const QString& windowIcon = QString());
    void                    replace ();

protected:
    void                    slotDoReplace ();
    void                    slotReplaceNext ();
    void                    slotDoFind ();
    void                    slotFind ();
    void                    slotFindNext ();
    void                    slotReplace ();
    void                    slotSpeakText ();
    virtual bool            event (QEvent*);
    virtual void            keyPressEvent (QKeyEvent*);
    virtual void            focusInEvent (QFocusEvent*);
    virtual void            wheelEvent (QWheelEvent*);
    virtual void            deleteWordBack ();
    virtual void            deleteWordForward ();
    virtual void            contextMenuEvent (QContextMenuEvent*);
    void                    setCheckSpellingEnabledInternal (bool check);
    bool                    checkSpellingEnabledInternal () const;
};   // KTextEdit


