home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; 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.
- */
-
- #ifndef _SPELLCLI_H
- #define _SPELLCLI_H
-
- #include "spellchk.h" // spell checker library public header file
- // the dialog box & string resources are in edtrcdll DLL
- #include "edtrcdll\src\resource.h"
-
- /**************************************************************************
- * Public classes and functions.
- **************************************************************************/
-
- // forward declaration of the dialog box class
- class CSpellCheckerDlg;
- class CPersonalDictionaryDlg;
-
- class CSpellCheckerClient
- {
- public:
- CSpellCheckerClient(CWnd *pParentWnd);
- ~CSpellCheckerClient();
-
- // Starts checking the document for spelling errors.
- // Returns: 0 = success, non-zero = failure
- int ProcessDocument();
-
- protected:
- // Functions to be provided by the derived classes
- virtual XP_HUGE_CHAR_PTR GetBuffer() = 0;
- virtual BOOL GetSelection(int32 &SelStart, int32 &SelEnd) = 0;
- virtual char *GetFirstError() = 0;
- virtual char *GetNextError() = 0;
- virtual void ReplaceHilitedText(const char *NewText, int AllInstances) = 0;
- virtual void IgnoreHilitedText(int AllInstances) = 0;
- virtual void RemoveAllErrorHilites() {};
-
- // Displays the modal personal dictionary dialog box
- void ShowPersonalDictionaryDlg(CWnd *pParent = NULL);
-
- // Restarts checking the document. Called by the dialog box when the
- // user changes the default language.
- int ReprocessDocument();
-
- protected:
- HINSTANCE m_hSpellCheckerDll;
- CWnd *m_pParentWnd;
- ISpellChecker *m_pSpellChecker;
- CPersonalDictionaryDlg *m_pDictionaryDlg;
- int32 m_BufferSize;
- int32 m_SelStart, m_SelEnd;
-
- static int m_InstanceCount;
-
- friend class CSpellCheckerDlg;
- friend class CHtmlSpellChecker;
- friend class CPlainTextSpellChecker;
- };
-
- class CHtmlSpellChecker : public CSpellCheckerClient
- {
- public:
- CHtmlSpellChecker(MWContext *pMWContext, CNetscapeEditView *pHtmlView);
-
- // Starts checking the document for spelling errors.
- // Returns: 0 = success, non-zero = failure
- int ProcessDocument() {return CSpellCheckerClient::ProcessDocument(); };
-
- protected:
- // Implementation of base class virtuals.
- XP_HUGE_CHAR_PTR GetBuffer();
- BOOL GetSelection(int32 &SelStart, int32 &SelEnd);
- char *GetFirstError();
- char *GetNextError();
- void ReplaceHilitedText(const char *NewText, int AllInstances);
- void IgnoreHilitedText(int AllInstances);
- void RemoveAllErrorHilites();
-
- private:
- MWContext *m_pMWContext;
- CNetscapeEditView *m_pView;
- };
-
- class CPlainTextSpellChecker : public CSpellCheckerClient
- {
- public:
- CPlainTextSpellChecker(CEdit *pTextView);
-
- // Starts checking the document for spelling errors.
- // Returns: 0 = success, non-zero = failure
- int ProcessDocument() {return CSpellCheckerClient::ProcessDocument(); };
-
- protected:
- // Implentation of base class virtuals.
- XP_HUGE_CHAR_PTR GetBuffer();
- BOOL GetSelection(int32 &SelStart, int32 &SelEnd);
- char *GetFirstError();
- char *GetNextError();
- void ReplaceHilitedText(const char *NewText, int AllInstances);
- void IgnoreHilitedText(int AllInstances);
-
- private:
- CEdit *m_pTextView;
- };
-
-
- /**************************************************************************
- * Dialog box implementation classes
- **************************************************************************/
-
- /////////////////////////////////////////////////////////////////////////////
- // CSpellCheckerDlg dialog
-
- class CSpellCheckerDlg : public CDialog
- {
- // Construction
- public:
- CSpellCheckerDlg(ISpellChecker *pSpellChecker, CSpellCheckerClient *pClient, CWnd* pParent = NULL);
-
- // Dialog Data
- //{{AFX_DATA(CSpellDlg)
- enum { IDD = IDD_SPELL_CHECKER };
- CListBox m_SuggestionsListBox;
- //}}AFX_DATA
-
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CSpellCheckerDlg)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
- // Implementation
- protected:
- // Generated message map functions
- //{{AFX_MSG(CSpellCheckerDlg)
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- virtual BOOL OnInitDialog();
- virtual void OnCancel();
- afx_msg void OnChange();
- afx_msg void OnIgnore();
- afx_msg void OnChangeNewWord();
- afx_msg void OnSetFocusNewWord();
- afx_msg void OnSetFocusSuggestions();
- afx_msg void OnSelChangeSuggestions();
- afx_msg void OnIgnoreAll();
- afx_msg void OnChangeAll();
- afx_msg void OnAdd();
- afx_msg void OnEditDictionary();
- afx_msg void OnSelendokLanguage();
- afx_msg void OnHelp();
- afx_msg void OnCheckWord();
- //}}AFX_MSG
- #ifdef XP_WIN32
- afx_msg BOOL OnHelpInfo(HELPINFO *);
- #endif
- void CommonOnChange(BOOL ChangeAll);
-
- afx_msg LRESULT OnSetInitialFocus(WPARAM wParam, LPARAM lParam);
-
- DECLARE_MESSAGE_MAP()
-
- private:
- ISpellChecker *m_pSpellChecker;
- CSpellCheckerClient *m_pClient;
- CString m_MisspelledWord;
-
- // Resource switcher object: It switches the default resource handle to the
- // editorXX.dll, cause that's where the dialog box resource is.
- CEditorResourceSwitcher m_DlgResource;
-
- // strings loaded from the resource DLL
- CString m_strChange, m_strChangeAll, m_strDelete,
- m_strDeleteAll, m_strNoSuggestions,
- m_strStop, m_strDone, m_strCorrectSpelling;
-
- // The new word, either entered in the edit field or selected in
- // the Suggestions listbox.
- CString m_NewWord;
- int m_NumSuggestions;
-
- void SetAlternatives();
- void GetFirstError();
- void GetNextError();
- void ProcessError(char *pMisspelledWord);
- void InitLanguageList();
- void ChangeState();
- void UpdateChangeButton();
-
- #ifdef XP_WIN16
- // Win16 MFC 1.52 version of GetDlgItemText does not take a CString
- void GetDlgItemText( int nID, CString& rString ) const
- { GetDlgItem(nID)->GetWindowText(rString); }
- #endif
- };
-
- /////////////////////////////////////////////////////////////////////////////
- // CPersonalDictionaryDlg dialog
-
- class CPersonalDictionaryDlg : public CDialog
- {
- // Construction
- public:
- CPersonalDictionaryDlg(ISpellChecker *pSpellChecker, CWnd* pParent=NULL);
-
- // Dialog Data
- //{{AFX_DATA(CPersonalDictionaryDlg)
- enum { IDD = IDD_CUSTOM_DICTIONARY };
- CListBox m_WordList;
- //}}AFX_DATA
-
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CSpellCheckerDlg)
- virtual BOOL OnInitDialog();
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
- virtual void OnOK();
-
- // Implementation
- protected:
- // Generated message map functions
- //{{AFX_MSG(CSpellCheckerDlg)
- //}}AFX_MSG
-
- afx_msg void OnAddWord();
- afx_msg void OnReplaceWord();
- afx_msg void OnRemoveWord();
- afx_msg void OnSelChangeWordList();
- afx_msg void EnableButtons();
- afx_msg void OnHelp();
- #ifdef XP_WIN32
- afx_msg BOOL OnHelpInfo(HELPINFO *);
- #endif
-
- DECLARE_MESSAGE_MAP()
-
- private:
- ISpellChecker *m_pSpellChecker;
-
- // Resource switcher object: It switches the default resource handle to the
- // editorXX.dll, cause that's where the dialog box resource is.
- CEditorResourceSwitcher m_DlgResource;
-
- #ifdef XP_WIN16
- // Win16 MFC 1.52 version of GetDlgItemText does not take a CString
- void GetDlgItemText( int nID, CString& rString ) const
- { GetDlgItem(nID)->GetWindowText(rString); }
- #endif
-
- };
-
- #endif
-