]> git.lyx.org Git - lyx.git/blobdiff - src/pspell.h
A better fix for bug 675:
[lyx.git] / src / pspell.h
index dd393ba4ce16f6043fd696a51dee82a1f05c75db..44071dc3e17d3647949aab433ed0cb21deef3c2d 100644 (file)
@@ -1,10 +1,13 @@
+// -*- C++ -*-
 /**
  * \file pspell.h
- * Copyright 2001 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
  * \author Kevin Atkinson
- * \author John Levon <levon@movementarian.org>
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef LYX_PSPELL_H
 
 #include "SpellBase.h"
 
+#include <map>
+
+
 class PspellManager;
 class PspellStringEmulation;
 class PspellCanHaveError;
+class PspellConfig;
+
+namespace lyx {
 
 class BufferParams;
 
@@ -24,43 +33,52 @@ public:
        /**
         * Initialise the spellchecker with the given buffer params and language.
         */
-       PSpell(BufferParams const & params, string const & lang);
+       PSpell(BufferParams const & params, std::string const & lang);
 
        virtual ~PSpell();
 
-       /// return true if the spellchecker instance still exists
-       virtual bool alive() { return alive_; }
-
-       /// clean up on messy exit
-       virtual void cleanUp();
+       /**
+        * return true if the spellchecker instance still exists
+        * Always true for pspell, since there is no separate process
+        */
+       virtual bool alive() { return true; }
 
        /// check the given word and return the result
-       virtual enum Result check(string const & word);
-
-       /// finish this spellchecker instance
-       virtual void close();
+       virtual enum Result check(WordLangTuple const &);
 
        /// insert the given word into the personal dictionary
-       virtual void insert(string const & word);
+       virtual void insert(WordLangTuple const &);
 
        /// accept the given word temporarily
-       virtual void accept(string const & word);
+       virtual void accept(WordLangTuple const &);
 
-       /// return the next near miss after a MISSED result
-       virtual string const nextMiss();
+       /// return the next near miss after a SUGGESTED_WORDS result
+       virtual docstring const nextMiss();
 
-       /// give an error message on messy exit 
-       virtual string const error();
+       /// give an error message on messy exit
+       virtual docstring const error();
 
 private:
-       /// main manager
-       PspellManager * sc;
+       /// add a manager of the given language
+       void addManager(std::string const & lang);
+
+       struct Manager {
+               PspellManager * manager;
+               PspellConfig * config;
+       };
+
+       typedef std::map<std::string, struct Manager> Managers;
+
+       /// the managers
+       Managers managers_;
+
        /// FIXME
        PspellStringEmulation * els;
        /// FIXME
        PspellCanHaveError * spell_error_object;
-       /// initialised properly ?
-       bool alive_;
 };
 
-#endif // PSPELL_H
+
+} // namespace lyx
+
+#endif // LYX_PSPELL_H