]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.h
reintrodoce operator<< fix
[lyx.git] / src / LaTeXFeatures.h
index fbf8e70848205640844d6b51c1775fb5be1a66d2..91165ad7f033e9e0b6e584804dbc2d4821719718 100644 (file)
@@ -4,8 +4,8 @@
 * 
 *           LyX, The Document Processor
 *        
-*           Copyright (C) 1995 Matthias Ettrich
-*           Copyright (C) 1995-1999 the LyX Team.
+*           Copyright 1995 Matthias Ettrich
+*           Copyright 1995-2000 the LyX Team.
 *
 * ====================================================== */
 
 #endif
 
 #include <vector>
-using std::vector;
+#include <set>
 
 #include "LString.h"
+#include "layout.h"
 
 class BufferParams; 
-class LyXTextClass;
-
+struct Language;
 
 /** The packages and commands that a buffer needs. This struct
-  contains an entry for each of the latex packages and
-  commands that a buffer might need. This struct is supposed to be
-  extended as the need arises. Remember to update the validate function
-  in buffer.C and paragraph.C when you do so. */
+    contains an entry for each of the latex packages and
+    commands that a buffer might need. This struct is supposed to be
+    extended as the need arises. Remember to update the validate function
+    in buffer.C and paragraph.C when you do so.
+*/
 struct LaTeXFeatures {
        ///
-       LaTeXFeatures(int n) ;
+       LaTeXFeatures(BufferParams const &, LyXTextClass::size_type n) ;
        /// The packaes needed by the document
-       string getPackages(BufferParams const &params);
+       string const getPackages();
        /// The macros definitions needed by the document
-       string getMacros(BufferParams const &params);
+       string const getMacros();
        /// The definitions needed by the document's textclass
-       string getTClassPreamble(BufferParams const &params);
+       string const getTClassPreamble();
+       ///
+       string const getIncludedFiles();
 
        ///
-       void showStruct(BufferParams &params);
+       void showStruct();
+
+       /// Provide a string name-space to the requirements
+       void require(string const & name);
+
+       /// Static preamble bits from the external material insets
+       string externalPreambles;
 
-       //@Man: Packages
-       //@{
+       ///
+       bool array;
        ///
        bool color;     // color.sty
        ///
+       bool graphicx; // graphicx.sty
+       ///
        bool graphics;  // graphics.sty
        ///
        bool setspace;  // setspace.sty
@@ -74,11 +85,13 @@ struct LaTeXFeatures {
        bool floatflt;  // floatflt.sty
        ///
        bool url;       // url.sty
-       //@}
+       ///
+       bool varioref;  // varioref.sty
+       ///
+       bool prettyref; // prettyref.sty
+       ///
+       bool chess;     // chess.sty
 
-       
-       //@Man: Commands
-       //@{
        ///
        bool lyx;
        ///
@@ -87,10 +100,7 @@ struct LaTeXFeatures {
        bool noun;
        /// \lyxarrow
        bool lyxarrow;
-       //@}
-       
-       //@Man: Quotes
-       //@{
+
        ///
        bool quotesinglbase;
        ///
@@ -103,31 +113,39 @@ struct LaTeXFeatures {
        bool guillemotleft;
        ///
        bool guillemotright;
-       //@}
-       
-       //@Man: Math mode
-       //@{
+
        ///
        bool amsstyle;
        ///
        bool boldsymbol;
        ///
        bool binom;
-       //@}
-       
-       //@Man: Layouts
-       //@{
-       vector<bool> layout;
-       //@}
        
-       //@Man: Special features
-       //@{
+       std::vector<bool> layout;
+
+       ///
        bool LyXParagraphIndent;
        ///
        bool NeedLyXFootnoteCode;
        ///
        bool NeedLyXMinipageIndent;
-       //@}
+       ///
+       typedef std::set<Language const *> LanguageList;
+       ///
+       LanguageList UsedLanguages;
+       ///
+       typedef std::set<string> FloatList;
+       ///
+       FloatList usedFloats;
+       ///
+       typedef std::map<string , string> FileMap;
+       ///
+       FileMap IncludedFiles;
+       ///
+       BufferParams const & bufferParams() const;
+private:
+       ///
+       BufferParams const & params;
 };
 
 #endif