X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FThesaurus.h;h=9c0bdc61de99e0855ab3a073e44ca0766dded1e9;hb=a4e42fe8e7985fe273b5268c3b8cf83272a0f933;hp=fc04d72a0cbdbed65ebacdc94cb28dc9f70b8ce7;hpb=80dda8f6b28db89f517be8dcae19a27bcb0cc7a5;p=lyx.git diff --git a/src/Thesaurus.h b/src/Thesaurus.h index fc04d72a0c..9c0bdc61de 100644 --- a/src/Thesaurus.h +++ b/src/Thesaurus.h @@ -1,69 +1,59 @@ +// -*- 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/docstring.h" + +#include +#include #include -#include - -#include "LString.h" -#ifdef HAVE_LIBAIKSAURUS -#include "AikSaurus.h" -#endif - +namespace lyx { + /** * This class provides an interface to whatever thesauri we might support. */ -class Thesaurus { +class Thesaurus +{ 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 > Meanings; /** * look up some text in the thesaurus */ - std::vector lookup(string const & text); + Meanings lookup(docstring const & text, docstring const & lang); + /** 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