*
* \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
-
-#include "ControlDialog_impl.h"
-#include "LString.h"
+#include "Dialog.h"
#include "WordLangTuple.h"
+#include <boost/scoped_ptr.hpp>
class SpellBase;
+namespace lyx {
+namespace frontend {
+
/** A controller for Spellchecker dialogs.
*/
-class ControlSpellchecker : public ControlDialogBD {
+class ControlSpellchecker : public Dialog::Controller {
public:
+ enum State {
+ SPELL_PROGRESSED, //< update progress bar
+ SPELL_FOUND_WORD //< found a bad word
+ };
+
+ ControlSpellchecker(Dialog &);
+ ~ControlSpellchecker();
+ ///
+ virtual bool initialiseParams(std::string const & data);
///
- ControlSpellchecker(LyXView &, Dialogs &);
+ virtual void clearParams();
+ /// Not needed here
+ virtual void dispatchParams() {}
+ ///
+ virtual bool isBufferDependent() const { return true; }
+ ///
+ virtual bool exitEarly() const { return exitEarly_; }
/// replace word with replacement
- void replace(string const &);
+ void replace(std::string const &);
/// replace all occurances of word
- void replaceAll(string const &);
+ void replaceAll(std::string const &);
/// insert word in personal dictionary
void insert();
/// 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 const getSuggestion() const;
+ std::string const getSuggestion() const;
/// get word
- string const getWord() const;
+ std::string const getWord() const;
/// returns progress value
int getProgress() const { return oldval_; }
- /// returns exit message
- string const getMessage() const { return message_; }
-
/// returns word count
int getCount() const { return count_; }
private:
- /// set the params before show or update
- void setParams();
- /// clean-up on hide.
- void clearParams();
+ /// give error message is spellchecker dies
+ bool checkAlive();
+
+ /// show count of checked words at normal exit
+ void showSummary();
- /// not needed.
- virtual void apply() {}
+private:
+ /// set to true when spellchecking is finished
+ bool exitEarly_;
/// current word being checked and lang code
WordLangTuple word_;
/// values for progress
- float newval_;
int oldval_;
int newvalue_;
/// 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_;
};
+} // namespace frontend
+} // namespace lyx
+
#endif // CONTROLSPELLCHECKER_H