//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module kspell  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software 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 library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


class KSpell : QObject
{
%TypeHeaderCode
#include <kspell.h>
%End


public:

%If ( KDE_3_2_0 -  )

    enum spellStatus
    {
        Starting, 
        Running, 
        Cleaning, 
        Finished, 
        Error, 
        Crashed, 
        FinishedNoMisspellingsEncountered
    };


    enum SpellerType
    {
        Text, 
        HTML, 
        TeX, 
        Nroff
    };

%End

                         KSpell (QWidget* /TransferThis/, const QString&, QObject*, const char*, KSpellConfig* = 0, bool = 1, bool = 0);

%If ( KDE_3_2_0 -  )
                         KSpell (QWidget* /TransferThis/, const QString&, QObject*, const char*, KSpellConfig*, bool, bool, KSpell::SpellerType);
%End

    spellStatus          status ();
    virtual void         cleanUp ();
    void                 setAutoDelete (bool);
    virtual bool         check (const QString&, bool = 1);
    int                  lastPosition ();
    virtual bool         checkList (QStringList*, bool = 1);
    virtual bool         checkWord (const QString&, bool = 0);

%If ( KDE_3_2_0 -  )
    bool                 checkWord (const QString&, bool, bool);
%End

    void                 hide ();
    QStringList          suggestions () const;
    int                  dlgResult ();
    void                 moveDlg (int, int);
    int                  heightDlg ();
    int                  widthDlg ();
    QString              intermediateBuffer () const;
    virtual bool         ignore (const QString&);
    virtual bool         addPersonal (const QString&);
    KSpellConfig         ksConfig () const;
    void                 setProgressResolution (uint);
    static int           modalCheck (QString&);
    static int           modalCheck (QString&, KSpellConfig*);
    void                 setIgnoreUpperWords (bool);
    void                 setIgnoreTitleCase (bool);

signals:
    void                 misspelling (const QString&, const QStringList&, uint);
    void                 corrected (const QString&, const QString&, uint);
    void                 ignoreall (const QString&);
    void                 ignoreword (const QString&);
    void                 addword (const QString&);

%If ( KDE_3_1_0 -  )
    void                 replaceall (const QString&, const QString&);
%End

    void                 ready (KSpell*);
    void                 progress (uint);
    void                 done (const QString&);
    void                 done (bool);
    void                 death ();

protected slots:
    void                 KSpell2 (KProcIO*);
    void                 checkWord2 (KProcIO*);
    void                 checkWord3 ();
    void                 check2 (KProcIO*);
    void                 checkList2 ();
    void                 checkList3a (KProcIO*);
    void                 checkListReplaceCurrent ();
    void                 checkList4 ();
    void                 dialog2 (int);
    void                 check3 ();

%If ( KDE_3_2_0 -  )
    void                 suggestWord (KProcIO*);
%End

    void                 slotStopCancel (int);
    void                 ispellExit (KProcess*);
    void                 emitDeath ();
    void                 ispellErrors (KProcess*, char*, int);

%If ( KDE_3_2_0 -  )
    void                 checkNext ();
%End


signals:
    void                 dialog3 ();

protected:
    int                  parseOneResponse (const QString&, QString&, QStringList&);
    QString              funnyWord (const QString&);
    void                 dialog (const QString&, QStringList&, const char*);
    QString              replacement ();
    void                 setUpDialog (bool = 1);
    void                 emitProgress ();
    bool                 cleanFputs (const QString&, bool = 1);
    bool                 cleanFputsWord (const QString&, bool = 1);
    void                 startIspell ();
    bool                 writePersonalDictionary ();

%If ( KDE_3_2_0 -  )
    void                 initialize (QWidget*, const QString&, SIP_RXOBJ_CON, SIP_SLOT_CON (), KSpellConfig*, bool, bool, KSpell::SpellerType);
%End


public:

%If (  - KDE_3_2_0 )

    enum spellStatus
    {
        Starting, 
        Running, 
        Cleaning, 
        Finished, 
        Error, 
        Crashed
    };


//force
%ConvertToSubClassCode
    // The table of Python class objects indexed by their names.  The table
    // must be sorted by name.

    static sipStringTypeClassMap map[] = {
        {sipName_KSpell,                  &sipClass_KSpell},
        {sipName_KSpellConfig,            &sipClass_KSpellConfig},
        {sipName_KSpellDlg,               &sipClass_KSpellDlg},
    };

    sipClass = sipMapStringToClass(sipCpp -> className(),map,sizeof (map)/sizeof (map[0]));
%End
//end
%End


};  // class KSpell

