You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/tdeui/ksconfig.h

294 lines
8.6 KiB

/* This file is part of the KDE libraries
Copyright (C) 1997 David Sweet <dsweet@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KDELIBS_KSCONFIG_H
#define KDELIBS_KSCONFIG_H
#include <tqwidget.h>
#include <tqstring.h>
#include <tqstringlist.h>
#include <tdelibs_export.h>
class TQCheckBox;
class TQComboBox;
class TQLabel;
class TDEConfig;
class KSpellConfigPrivate;
/**
* @brief Encoding for the spell checker
* @note In the identifier names LATIN means ISO-8859, not ECMA Latin
* @todo Should be replaced by the charset strings
* because the config file would be more stable
* when inserting entries in the list
*/
enum Encoding {
KS_E_ASCII=0,
KS_E_LATIN1=1,
KS_E_LATIN2=2,
KS_E_LATIN3=3,
KS_E_LATIN4=4,
KS_E_LATIN5=5, ///< ISO-8859-5 (Cyrillic)
KS_E_LATIN7=6, ///< ISO-8859-6 (Arabic)
KS_E_LATIN8=7, ///< ISO-8859-7 (Greek)
KS_E_LATIN9=8, ///< ISO-8859-8 (Hebrew)
KS_E_LATIN13=9, ///< ISO-8859-13 (Latin 7)
KS_E_LATIN15=10, ///< ISO-8859-15 (Latin 9)
KS_E_UTF8=11,
KS_E_KOI8R=12,
KS_E_KOI8U=13,
KS_E_CP1251=14,
KS_E_CP1255=15
};
enum KSpellClients {
KS_CLIENT_ISPELL=0,
KS_CLIENT_ASPELL=1,
KS_CLIENT_HSPELL=2,
KS_CLIENT_ZEMBEREK=3
};
/**
* A configuration class/dialog for KSpell.
*
* It contains all of the options settings.The options are set to default
* values by the constructor and can be reset either by using the
* public interface or by using KSpellConfig as a widget in a dialog
* (or, preferably a tabbed dialog using KDialogBase) and letting
* the user change the settings. This way an application that uses
* KSpell can either rely on the default settings (in the simplest
* case), offer a dialog to configure KSpell, or offer a dialog to
* configure KSpell <em>for this app only</em> (in which case, the application
* should save the settings for use next time it is run).
* This last option might be useful in an email program, for example, where
* people may be writing in a language different from that used for
* writing papers in their word processor.
*
* @author David Sweet <dsweet@kde.org>
* @see KSpell
*/
class TDEUI_EXPORT KSpellConfig : public TQWidget
{
TQ_OBJECT
public:
/**
* Constructs a KSpellConfig with default or custom settings.
*
* @param parent Parent of the widget.
* @param name Widget name.
* @param spellConfig Predefined configuration. If this parameter
* is 0, a default configuration will be used.
* @param addHelpButton Enabled or hides a help button. See
* activateHelp for more information.
*
*/
KSpellConfig( TQWidget *parent=0, const char *name=0,
KSpellConfig *spellConfig=0, bool addHelpButton = true );
KSpellConfig( const KSpellConfig & );
/**
* Deconstructor.
* Deletes private class.
*/
virtual ~KSpellConfig();
void operator=( const KSpellConfig &ksc );
/**
*
* @short Get the translated dictionary names and, optionally, the
* corresponding internal dictionary names.
*
* Fills @p box with the human readable, translated dictionary names and
* selects the currently used dictionary (this will be the global
* dictionary if you call @ref fillDicts directly after the constructor).
* If @p dictionaries isn't 0 then @p dictionaries will be filled with the
* corresponding internal dictionary names that are necessary to set the
* dictionary with @ref setDictionary.
*
* @param box Will be filled with the translated dictionary names.
* @param dictionaries Will be filled with the internal dictionary names.
*
* @since 3.2
*
*/
void fillDicts( TQComboBox* box, TQStringList* dictionaries = 0 );
/**
* @sect Options setting routines.
**/
/**
*
* The @p _ignorelist contains words you'd like KSpell
* to ignore when it is spellchecking. When you get a KSpellConfig
* object back from KSpell (using KSpell::kcConfig()),
* the @p _ignorelist contains whatever was put in by you plus
* any words the user has chosen to ignore via the dialog box.
* It may be useful to save this list with the document being
* edited to facilitate quicker future spellchecking.
*/
void setIgnoreList( TQStringList _ignorelist );
/**
* The @p _replaceAllList contains word you like that replace
* word. Be careful that this list contains word which is replaced
* and new word.
*/
void setReplaceAllList( TQStringList _replaceAllList );
/**
* Set an ISpell option.
*
* If @p true, don't create root-affix combinations.
*/
void setNoRootAffix( bool );
/**
* Set an ISpell option.
*
* If @p true, treat run-together words a valid.
*/
void setRunTogether( bool );
/**
* Set the name of the dictionary to use.
*/
void setDictionary( const TQString qs );
void setDictFromList( bool dfl );
//void setPersonalDict (const char *s);
/**
*
*/
void setEncoding( int enctype );
void setClient( int client );
/**
* Options reading routines.
*/
bool noRootAffix() const;
bool runTogether() const;
const TQString dictionary() const;
bool dictFromList() const;
//TQString personalDict () const;
int encoding() const;
TQStringList ignoreList() const;
TQStringList replaceAllList() const;
int client() const; ///< Spell checker client, see KSpellClients
/**
* Call this method before this class is deleted if you want
* the settings you have (or the user has) chosen to become the
* global, default settings.
*/
bool writeGlobalSettings();
bool readGlobalSettings();
protected:
void fillInDialog();
/**
* This takes a dictionary file name and provides both a language
* abbreviation appropriate for the $LANG variable, and a
* human-readable name.
*
* It also truncates ".aff" at the end of fname.
*
* @param fname the dictionary name file (input)
* @param lname the language abbreviation, such as de for German (output)
* @param hname the human-readable name, such as Deutsch (output)
*
* @return true if <pre>lname.data()==$LANG</pre>
*/
bool interpret( TQString &fname, TQString &lname, TQString &hname );
public slots:
/**
* Use this function to activate the help information for this
* widget. The function is particulary useful if the help button is
* not displayed as specified by the constructor. Normally you want
* to hide the help button if this widget is embedded into a larger
* dialog box that has its own help button. See kedit
* (optiondialog.cpp) for an example
*/
void activateHelp( void );
protected slots:
/**
* Invokes the help documentation for tdespell
*/
void sHelp();
//void sBrowseDict();
//void sBrowsePDict();
void sNoAff( bool );
void sRunTogether( bool );
void sDictionary( bool );
void sPathDictionary( bool );
void sSetDictionary( int );
void sChangeEncoding( int );
void sChangeClient( int );
//void textChanged1 (const char *);
//void textChanged2 (const char *);
protected:
// The options
int enc; // 1 ==> -Tlatin1
bool bnorootaffix; // -m
bool bruntogether; // -B
bool dictfromlist;
bool nodialog;
TQString qsdict; // -d [dict]
TQString qspdict; // -p [dict]
TQStringList ignorelist;
enum {rdictlist=3, rencoding=4, rhelp=6};
TDEConfig *kc;
int iclient; // defaults to ispell, may be aspell, too
TQCheckBox *cb1, *cb2;
//KLineEdit *kle1, *kle2;
//TQButtonGroup *dictgroup;
//TQRadioButton *dictlistbutton, *dicteditbutton;
TQLabel *dictlist;
TQComboBox *dictcombo, *encodingcombo, *clientcombo;
//TQPushButton *browsebutton1;
TQStringList langfnames;
signals:
void configChanged();
private:
KSpellConfigPrivate *d;
void getAvailDictsIspell();
void getAvailDictsAspell();
};
#endif // KDELIBS_KSCONFIG_H