]> git.lyx.org Git - lyx.git/blob - src/pspell.h
Alfredo's second patch
[lyx.git] / src / pspell.h
1 /**
2  * \file pspell.h
3  * Copyright 2001 the LyX Team
4  * Read the file COPYING
5  *
6  * \author Kevin Atkinson
7  * \author John Levon <levon@movementarian.org>
8  */
9
10 #ifndef LYX_PSPELL_H
11 #define LYX_PSPELL_H
12
13 #include <map>
14
15 #include "SpellBase.h"
16
17 class PspellManager;
18 class PspellStringEmulation;
19 class PspellCanHaveError;
20 class PspellConfig;
21
22 class BufferParams;
23
24
25 class PSpell : public SpellBase {
26 public:
27         /**
28          * Initialise the spellchecker with the given buffer params and language.
29          */
30         PSpell(BufferParams const & params, string const & lang);
31
32         virtual ~PSpell();
33
34         /**
35          * return true if the spellchecker instance still exists
36          * Always true for pspell, since there is no separate process
37          */
38         virtual bool alive() { return true; }
39
40         /// check the given word and return the result
41         virtual enum Result check(WordLangTuple const &);
42
43         /// insert the given word into the personal dictionary
44         virtual void insert(WordLangTuple const &);
45
46         /// accept the given word temporarily
47         virtual void accept(WordLangTuple const &);
48
49         /// return the next near miss after a MISSED result
50         virtual string const nextMiss();
51
52         /// give an error message on messy exit
53         virtual string const error();
54
55 private:
56         /// add a manager of the given language
57         void addManager(string const & lang);
58
59         struct Manager {
60                 PspellManager * manager;
61                 PspellConfig * config;
62         };
63
64         typedef std::map<string, struct Manager> Managers;
65
66         /// the managers
67         Managers managers_;
68
69         /// FIXME
70         PspellStringEmulation * els;
71         /// FIXME
72         PspellCanHaveError * spell_error_object;
73 };
74
75 #endif // PSPELL_H