*
* \author Edwin Leuven
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#ifndef CONTROLSPELLCHECKER_H
#define CONTROLSPELLCHECKER_H
-#ifdef __GNUG__
-#pragma interface
-#endif
+#include <boost/scoped_ptr.hpp>
#include "ControlDialog_impl.h"
-#include "LString.h"
+#include "support/std_string.h"
#include "WordLangTuple.h"
class SpellBase;
*/
class ControlSpellchecker : public ControlDialogBD {
public:
- ///
+ enum State {
+ SPELL_PROGRESSED, //< update progress bar
+ SPELL_FOUND_WORD //< found a bad word
+ };
+
ControlSpellchecker(LyXView &, Dialogs &);
+ ~ControlSpellchecker();
+
/// replace word with replacement
void replace(string const &);
/// ignore all occurances of word
void ignoreAll();
- /// stop checking
- void stop();
-
/// check text until next misspelled/unknown word
+ /// returns true when finished
void check();
/// get suggestion
- string getSuggestion();
+ string const getSuggestion() const;
/// get word
- string getWord();
+ string const getWord() const;
/// returns progress value
- int getProgress() {
- return oldval_;
- }
-
- /// returns exit message
- string getMessage() {
- return message_;
- }
+ int getProgress() const { return oldval_; }
+
+ /// returns word count
+ int getCount() const { return count_; }
+
private:
+ /// give error message is spellchecker dies
+ bool checkAlive();
+
+ /// start a spell-checking session
+ void startSession();
+
+ /// end a spell-checking session
+ void endSession();
+
+ /// show count of checked words at normal exit
+ void showSummary();
+
/// set the params before show or update
void setParams();
/// clean-up on hide.
/// not needed.
virtual void apply() {}
- /// right to left
- bool rtl_;
-
/// current word being checked and lang code
WordLangTuple word_;
/// word count
int count_;
- /// exit message
- string message_;
-
- /// set to true to stop checking
- bool stop_;
-
/// The actual spellchecker object
- SpellBase * speller_;
+ boost::scoped_ptr<SpellBase> speller_;
};
#endif // CONTROLSPELLCHECKER_H