+// -*- 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;
/**
* 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