diff options
Diffstat (limited to 'tdeui/ksconfig.h')
-rw-r--r-- | tdeui/ksconfig.h | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/tdeui/ksconfig.h b/tdeui/ksconfig.h new file mode 100644 index 000000000..7663a2c5f --- /dev/null +++ b/tdeui/ksconfig.h @@ -0,0 +1,293 @@ +/* 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 <kdelibs_export.h> + +class TQCheckBox; +class TQComboBox; +class TQLabel; + +class KConfig; +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 KDEUI_EXPORT KSpellConfig : public TQWidget +{ + Q_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 kspell + */ + 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}; + KConfig *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 + + + + + |