home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- /* *
- *
- *
- ***************************************************************************
- * spellchk.h
- * Public header file for the Spell Checker library.
- ****************************************************************************/
-
- #ifndef _SPELLCHK_H_
- #define _SPELLCHK_H_
-
- /* In WIN16 DLL exported functions require __loadds keywords for the DS
- * register to be set to the DLL's data-segment value and restored on return
- * from the function.
- */
- #ifdef WINDOWS
- #define SCAPI __loadds
- #elif defined(WIN32)
- #define SCAPI __cdecl
- #else
- #define SCAPI
- #endif
-
- #ifdef MAC
- #include <Files.h>
- #endif
-
- /* Language and Dialect codes. */
-
- #define L_AFRIKAANS 101
- #define L_CATALAN 102
- #define L_CZECH 103
- #define L_DANISH 104
- #define L_DUTCH 105
- #define L_ENGLISH 106
- #define L_FINNISH 107
- #define L_FRENCH 108
- #define L_GERMAN 109
- #define L_GREEK 110
- #define L_HUNGARIAN 111
- #define L_ITALIAN 112
- #define L_NORWEGIAN 113
- #define L_POLISH 114
- #define L_PORTUGUESE 115
- #define L_RUSSIAN 116
- #define L_SPANISH 117
- #define L_SWEDISH 118
-
-
- #define D_DEFAULT 0xFFFF
- #define D_AUS_ENGLISH 0x1001
- #define D_US_ENGLISH 0x1010
- #define D_UK_ENGLISH 0x1100
- #define D_DOPPEL 0x2001 /* German */
- #define D_SCHARFES 0x2010
- #define D_BRAZILIAN 0x4001 /* Portuguese */
- #define D_EUROPEAN 0x4010
- #define D_BOKMAL 0x8001 /* Norwegian */
- #define D_NYNORSK 0x8010
-
-
- /* ISpellChecker - This class specifies the interface to the Spell Checker. A client
- * application instatiates a spell checker object using the exported function SC_Create().
- * The client application then performs spell checking using the member functions of this
- * class. The spell checker object is destroyed by using the exported function SC_Destroy().
- */
-
- class ISpellChecker
- {
- public:
- /* Needs to be called by the client app once before calling any other functions.
- * Return: 0 = success, non-zero = error
- */
- #ifdef MAC
- virtual int SCAPI Initialize(int LangCode, int DialectCode,
- FSSpec *DbPath, FSSpec *PersonalDbFile) = 0;
- #else
- virtual int SCAPI Initialize(int LangCode, int DialectCode,
- const char *DbPath, const char *PersonalDbFile) = 0;
- #endif
-
- /* Functions to set and get the current language and dialect settings.
- * Returns: 0 = success, non-zero = failure
- */
- virtual int SCAPI SetCurrentLanguage(int LangCode, int DialectCode) = 0;
- virtual int SCAPI GetCurrentLanguage(int &LangCode, int &DialectCode) = 0;
-
- /* Get the list of dictionaries available */
- virtual int SCAPI GetNumOfDictionaries() = 0;
- /* Get the language and dialect id for an available dictionary.
- * Index = 0-based index into the list of available dictionaries.
- * Returns: 0 = success, non-zero = failure.
- */
- virtual int SCAPI GetDictionaryLanguage(int Index, int &LangCode, int &DialectCode) = 0;
-
- /* Called by the client application to initialize a buffer for spell checking.
- * It returns immediately without parsing the buffer. The client controls parsing of
- * the buffer by calling GetNextMisspelledWord() and SetNewBuf().
- * Return: 0 = success, non-zero = error
- */
- virtual int SCAPI SetBuf(const char *pBuf) = 0;
-
- /* Initialize a buffer with selection */
- virtual int SCAPI SetBuf(const char *pBuf, unsigned long SelStart, unsigned long SelEnd) = 0;
-
- /* Replace the current mispelled word with a new word */
- virtual int SCAPI ReplaceMisspelledWord(const char *NewWord, int AllInstances) = 0;
-
- /* Get the size of the current buffer */
- virtual unsigned long SCAPI GetBufSize() = 0;
-
- /* Copy the current buffer */
- virtual int SCAPI GetBuf(char *pBuf, unsigned long BufSize) = 0;
-
- /* Called by the client application to parse the buffer and return the next misspelled
- * word in the buffer.
- * Return: 0 = found a misspelled word.
- * *Offset = Offset of the word from the beginning of the buffer
- * *Len = Length of the word
- * non-zero = no more misspelled word
- */
- virtual int SCAPI GetNextMisspelledWord(unsigned long &Offset, unsigned long &Len) = 0;
-
- /* The orginal buffer was changed by the client.
- * ReparseFromStart = 1 - reparse the new buffer from the beginning
- * = 0 - parse from the last offset into the original buffer
- */
- virtual void SCAPI SetNewBuf(const char *pBuf, int ReparseFromStart) = 0;
-
- /* Called by the client application to spell check a work.
- * Return: 1 = valid word, 0 = not in dictionary
- */
- virtual int SCAPI CheckWord(const char *pWord) = 0;
-
- /* Get the number of possible alternatives found in the dictionary for the input word. */
- virtual int SCAPI GetNumAlternatives(const char *pWord) = 0;
-
- /* Get an alternative string. The "Index" is zero based.
- * Return: 0 = success, -1 = error(bad Index),
- * +ve value = BufSize too small, size needed
- */
- virtual int SCAPI GetAlternative(int Index, char *pBuf, unsigned int BufSize) = 0;
-
- /* The following functions interact with the personal database */
-
- /* Add a word to the personal dictionary */
- virtual int SCAPI AddWordToPersonalDictionary(const char *pWord) = 0;
-
- /* Remove a word from the personal dictionary */
- virtual int SCAPI RemoveWordFromPersonalDictionary(const char *pWord) = 0;
-
- /* Ignore all references to a word in the current session */
- virtual int SCAPI IgnoreWord(const char *pWord) = 0;
-
- /* GetFirstPersonalDictionaryWord & GetNextPersonalDictionaryWord
- * These functions retrieve words in the personal dictionary
- * Returns: 0 = success, pBuf contains the next word
- * -1 = no more words
- * +ve = required buffer size. Size passed is too small.
- */
- virtual int SCAPI GetFirstPersonalDictionaryWord(char *pBuf, int BufSize) = 0;
- virtual int SCAPI GetNextPersonalDictionaryWord(char *pBuf, int BufSize) = 0;
-
- /* Resets the contents of the personal dictionary */
- virtual int SCAPI ResetPersonalDictionary() = 0;
-
- /* destructor */
- virtual ~ISpellChecker() {};
- };
-
- /* Exported library functions to create and destroy ISpellChecker objects. */
-
- extern "C"
- {
-
- ISpellChecker * SCAPI SC_Create();
- void SCAPI SC_Destroy(ISpellChecker *pSpellChecker);
-
- }
-
- #endif
-