]> git.lyx.org Git - features.git/blobdiff - src/LaTeXFeatures.h
Replace LString.h with support/std_string.h,
[features.git] / src / LaTeXFeatures.h
index c9b628dacd0a2eb963d4256ef1aab91a3a58c602..d882bc4013fd127a33eab82a6b621fd614e1b99a 100644 (file)
@@ -1,30 +1,27 @@
 // -*- C++ -*-
-/* This file is part of
-* ====================================================== 
-* 
-*           LyX, The Document Processor
-*        
-*           Copyright 1995 Matthias Ettrich
-*           Copyright 1995-2001 the LyX Team.
-*
-* ====================================================== */
+/**
+ * \file LaTeXFeatures.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ *
+ * Full author contact details are available in file CREDITS.
+ */
 
 #ifndef LATEXFEATURES_H
 #define LATEXFEATURES_H
 
+#include "support/types.h"
 
-#ifdef __GNUG__
-#pragma interface
-#endif
+#include "support/std_string.h"
 
-#include <vector>
 #include <set>
 #include <list>
+#include <map>
 
-#include "LString.h"
-#include "layout.h"
-
-class BufferParams; 
+class BufferParams;
 struct Language;
 
 /** The packages and commands that a buffer needs. This class
@@ -33,22 +30,23 @@ struct Language;
 
     i.e require("amssymb")
 
-    To add support you should only need to require() the package name as 
+    To add support you should only need to require() the package name as
     packages which don't have special requirements are handled automatically.
     If your new package does need special consideration you'll need to alter
     string const getPackages() const;
-    Remember to update the validate function in buffer.C and paragraph.C 
+    Remember to update the validate function in buffer.C and paragraph.C
     when you do so.
 */
 class LaTeXFeatures {
-
 public:
        ///
-       LaTeXFeatures(BufferParams const &, lyx::layout_type n) ;
+       LaTeXFeatures(BufferParams const &);
        /// The packages needed by the document
        string const getPackages() const;
        /// The macros definitions needed by the document
        string const getMacros() const;
+       ///
+       string const getBabelOptions() const;
        /// The definitions needed by the document's textclass
        string const getTClassPreamble() const;
        /// The sgml definitions needed by the document (dobook/linuxdoc)
@@ -61,7 +59,7 @@ public:
        void getFloatDefinitions(std::ostream & os) const;
        /// Print requirements to lyxerr
        void showStruct() const;
-       /// 
+       ///
        void addExternalPreamble(string const &);
        /// Provide a string name-space to the requirements
        void require(string const & name);
@@ -72,30 +70,28 @@ public:
        ///
        void useLanguage(Language const *);
        ///
-       bool hasLanguages();
+       bool hasLanguages() const;
        ///
        string getLanguages() const;
        ///
-       std::set<string> getEncodingSet(string const & doc_encoding);
-       ///
+       std::set<string> getEncodingSet(string const & doc_encoding) const;
        ///
-       void useLayout(std::vector<bool>::size_type const & idx);
+       void useLayout(string const & lyt);
        ///
        BufferParams const & bufferParams() const;
-       ///
+       /// the return value is dependent upon both LyXRC and LaTeXFeatures.
+       bool useBabel() const;
 
 private:
-       string externalPreambles;
-
-       std::vector<bool> layout;
+       std::list<string> usedLayouts;
 
        /// Static preamble bits from the external material insets
-
-
        typedef std::list<string> FeaturesList;
        ///
        FeaturesList features;
        ///
+       FeaturesList preamble_snippets;
+       ///
        typedef std::set<Language const *> LanguageList;
        ///
        LanguageList UsedLanguages;