* Licence details can be found in the file COPYING.
*
* \author John Levon
+ * \author Jürgen Spitzmüller
*
* Full author contact details are available in file CREDITS.
*/
#ifndef THESAURUS_H
#define THESAURUS_H
-#include <vector>
+#include "support/docstring.h"
+#include "WordLangTuple.h"
+
#include <map>
+#include <vector>
-#include "support/std_string.h"
-#ifdef HAVE_LIBAIKSAURUS
-#include AIKSAURUS_H_LOCATION
-#endif
+namespace lyx {
/**
* This class provides an interface to whatever thesauri we might support.
*/
-class Thesaurus {
+class Thesaurus
+{
public:
///
Thesaurus();
///
~Thesaurus();
- typedef std::map<string, std::vector<string> > Meanings;
+ typedef std::map<docstring, std::vector<docstring> > Meanings;
/**
* look up some text in the thesaurus
*/
- Meanings lookup(string const & text);
+ 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_LIBAIKSAURUS
- Aiksaurus * aik_;
-#endif
+ struct Private;
+ Private * const d;
};
extern Thesaurus thesaurus;
+
+} // namespace lyx
+
#endif