]> git.lyx.org Git - lyx.git/blobdiff - src/Thesaurus.h
Remove all uses of Q_WS_* macros
[lyx.git] / src / Thesaurus.h
index 5ade7daf8d70337045483fd0bac895e6f198aa3d..9c13b044cb9ecf30980b0bbdb9b3073d0a046eb9 100644 (file)
@@ -1,70 +1,63 @@
 // -*- C++ -*-
 /**
  * \file Thesaurus.h
- * Copyright 2001 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * 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 "support/strfwd.h"
+
+#include <map>
 #include <vector>
 
-#include <config.h>
-#include "LString.h"
-#ifdef HAVE_LIBAIKSAURUS
-#include "AikSaurus.h"
-#endif
+namespace lyx {
+
+class WordLangTuple;
+
 /**
  * This class provides an interface to whatever thesauri we might support.
  */
 
-class Thesaurus {
+class Thesaurus
+{
+       /// noncopyable
+       Thesaurus(Thesaurus const &);
+       void operator=(Thesaurus const &);
 public:
        ///
        Thesaurus();
        ///
        ~Thesaurus();
 
-       /**
-        * enum of possible part of speech types
-        */
-       enum POS {
-               NONE = 0x0,
-               OTHER = 0x01,
-               NOUN = 0x02,
-               VERB = 0x04,
-               ADJECTIVE = 0x08,
-               ADVERB = 0x10
-       };
-
-       /**
-        * an individual entry from the thesaurus 
-        */
-       struct ThesaurusEntry {
-               /// 
-               ThesaurusEntry(const string & ent, char pos); 
-               /// the actual entry 
-               string entry;
-               /// entry's part of speech
-               int pos;
-       };
+       typedef std::map<docstring, std::vector<docstring> > Meanings;
 
        /**
         * look up some text in the thesaurus
         */
-       std::vector<ThesaurusEntry> 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