]> git.lyx.org Git - features.git/blobdiff - src/frontends/controllers/ControlSpellchecker.h
Replace LString.h with support/std_string.h,
[features.git] / src / frontends / controllers / ControlSpellchecker.h
index c1444e14f9f0ecfe6fd68861af3b51391a6476a9..4e87d437b181096ad63b24fd9876115c7c0f1af4 100644 (file)
@@ -6,18 +6,16 @@
  *
  * \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;
@@ -26,9 +24,15 @@ 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 &);
 
@@ -41,28 +45,35 @@ public:
        /// 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.
@@ -71,9 +82,6 @@ private:
        /// not needed.
        virtual void apply() {}
 
-       /// right to left
-       bool rtl_;
-
        /// current word being checked and lang code
        WordLangTuple word_;
 
@@ -85,14 +93,8 @@ private:
        /// 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