]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.h
GuiToc::initialiseParams(): Fix list type parsing
[lyx.git] / src / BufferParams.h
index b6eccbf120b908141710438b072f64fd7c48ace5..61c8612fae4b29b631833f0786d231da6ac87687 100644 (file)
@@ -23,7 +23,6 @@
 #include "insets/InsetQuotes.h"
 
 #include "support/copied_ptr.h"
-#include "support/FileName.h"
 #include "support/types.h"
 
 #include <vector>
@@ -76,6 +75,9 @@ public:
        ///
        void writeFile(std::ostream &) const;
 
+       /// check what features are implied by the buffer parameters.
+       void validate(LaTeXFeatures &) const;
+
        /** \returns true if the babel package is used (interogates
         *  the BufferParams and a LyXRC variable).
         *  This returned value can then be passed to the insets...
@@ -106,24 +108,19 @@ public:
        std::string fontsize;
        ///Get the LyX TextClass (that is, the layout file) this document is using.
        textclass_type getBaseClass() const;
-       ///Set the LyX TextClass (that is, the layout file) this document is using.
-       ///NOTE This also calls makeTextClass(), to update the local
-       ///TextClass.
+       /// Set the LyX TextClass (that is, the layout file) this document is using.
+       /// NOTE: This does not call makeTextClass() to update the local TextClass.
+       /// That needs to be done manually.
        bool setBaseClass(textclass_type);
-       ///Returns the TextClass currently in use: the BaseClass as modified
-       ///by modules.
+       /// Adds the module information to the baseClass information to
+       /// create our local TextClass.
+       void makeTextClass();
+       /// Returns the TextClass currently in use: the BaseClass as modified
+       /// by modules.
        TextClass const & getTextClass() const;
-       ///Returns a pointer to the TextClass currently in use: the BaseClass 
-       ///as modified by modules. (See \file TextClassPtr.h for the typedef.)
+       /// Returns a pointer to the TextClass currently in use: the BaseClass 
+       /// as modified by modules. (See \file TextClassPtr.h for the typedef.)
        TextClassPtr getTextClassPtr() const;
-       ///Set the LyX TextClass---layout file---this document is using.
-       ///This does NOT call makeTextClass() and so should be used with
-       ///care. This is most likely not what you want if you are operating on 
-       ///BufferParams that are actually associatd with a Buffer. If, on the
-       ///other hand, you are using a temporary set of BufferParams---say, in
-       ///a controller, it may well be, since in that case the local TextClass
-       ///has nothing to do.
-       void setJustBaseClass(textclass_type);
        /// This bypasses the baseClass and sets the textClass directly.
        /// Should be called with care and would be better not being here,
        /// but it seems to be needed by CutAndPaste::putClipboard().
@@ -132,10 +129,11 @@ public:
        std::vector<std::string> const & getModules() const;
        /// Add a module to the list of modules in use.
        /// Returns true if module was successfully added.
-       bool addLayoutModule(std::string modName, bool makeClass = true);
-       /// Add a list of modules.
-       /// Returns true if all modules were successfully added.
-       bool addLayoutModules(std::vector<std::string>modNames);
+       /// The makeClass variable signals whether to call makeTextClass. This
+       /// need not be done if we know this isn't the final time through, or if
+       /// the BufferParams do not represent the parameters for an actual buffer
+       /// (as in GuiDocument).
+       bool addLayoutModule(std::string const & modName);
        /// Clear the list
        void clearLayoutModules();
 
@@ -276,8 +274,20 @@ public:
        std::vector<unsigned int> author_map;
        ///
        std::string const dvips_options() const;
+       /** The return value of paperSizeName() depends on the
+        *  purpose for which the paper size is needed, since they
+        *  support different subsets of paper sizes.
+       */
+       enum Papersize_Purpose {
+               ///
+               DVIPS,
+               ///
+               DVIPDFM,
+               ///
+               XDVI
+       };
        ///
-       std::string const paperSizeName() const;
+       std::string const paperSizeName(Papersize_Purpose const & purpose) const;
        /// set up if and how babel is called
        std::string const babelCall(std::string const & lang_opts) const;
        /// handle inputenc etc.
@@ -312,11 +322,7 @@ private:
        void readBulletsLaTeX(Lexer &);
        ///
        void readModules(Lexer &);
-       /// Adds the module information to the baseClass information to
-       /// create our local TextClass.
-       void makeTextClass();
 
-       
        /// for use with natbib
        biblio::CiteEngine cite_engine_;
        /// the base TextClass associated with the document