]> git.lyx.org Git - lyx.git/blobdiff - src/Thesaurus.h
Fix #10778 (issue with CJK and language nesting)
[lyx.git] / src / Thesaurus.h
index 9808a455ff49ab683e31734f39644553d9178ad0..52987cdd1377fdea6bcf41ad4701e927590e1b98 100644 (file)
 #define THESAURUS_H
 
 #include "support/docstring.h"
+#include "WordLangTuple.h"
 
-#include <vector>
 #include <map>
-#include <string>
-
-#ifdef HAVE_LIBMYTHES
-#include MYTHES_H_LOCATION
-#else
-#ifdef HAVE_LIBAIKSAURUS
-#include AIKSAURUS_H_LOCATION
-#endif // HAVE_LIBAIKSAURUS
-#endif // !HAVE_LIBMYTHES
+#include <vector>
 
 namespace lyx {
 
@@ -35,6 +27,9 @@ namespace lyx {
 
 class Thesaurus
 {
+       /// noncopyable
+       Thesaurus(Thesaurus const &);
+       void operator=(Thesaurus const &);
 public:
        ///
        Thesaurus();
@@ -46,23 +41,17 @@ public:
        /**
         * look up some text in the thesaurus
         */
-       Meanings lookup(docstring const & text, docstring const & lang);
-       /// check if a thesaurus for a given language \p lang is available
+       Meanings lookup(WordLangTuple const & wl);
+       /** check if a thesaurus for a given language \p lang is available
+        *  (installed and loaded)
+        */
        bool thesaurusAvailable(docstring const & lang) const;
+       /// check if a thesaurus for a given language \p lang is installed
+       bool thesaurusInstalled(docstring const & lang) const;
 
 private:
-#ifdef HAVE_LIBMYTHES
-       /// add a thesaurus to the list
-       bool addThesaurus(docstring const & lang);
-
-       typedef std::map<docstring, MyThes *> Thesauri;
-       /// the thesauri
-       Thesauri thes_;
-#else
-#ifdef HAVE_LIBAIKSAURUS
-       Aiksaurus * thes_;
-#endif // HAVE_LIBAIKSAURUS
-#endif // !HAVE_LIBMYTHES
+       struct Private;
+       Private * const d;
 };
 
 extern Thesaurus thesaurus;