+ ///Get the LayoutFile this document is using.
+ LayoutFile const * baseClass() const;
+ ///
+ LayoutFileIndex const & baseClassID() const;
+ /// Set the LyX layout file this document is using.
+ /// NOTE: This does not call makeDocumentClass() to update the local
+ /// DocumentClass. That needs to be done manually.
+ /// \param filename the name of the layout file
+ bool setBaseClass(std::string const & classname);
+ /// Adds the module information to the baseClass information to
+ /// create our local DocumentClass.
+ void makeDocumentClass();
+ /// Returns the DocumentClass currently in use: the BaseClass as modified
+ /// by modules.
+ DocumentClass const & documentClass() const;
+ /// \return A pointer to the DocumentClass currently in use: the BaseClass
+ /// as modified by modules.
+ DocumentClass * documentClassPtr() const;
+ /// 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().
+ void setDocumentClass(DocumentClass const * const);
+ /// List of modules in use
+ std::vector<std::string> const & getModules() const;
+ /// Add a module to the list of modules in use.
+ /// Returns true if module was successfully added.
+ /// The makeClass variable signals whether to call makeDocumentClass. 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();