+ ///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 const * 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
+ LayoutModuleList const & getModules() const { return layoutModules_; }
+ /// List of default modules the user has removed
+ std::list<std::string> const & getRemovedModules() const
+ { return removedModules_; }
+ ///
+ /// Add a module to the list of modules in use. This checks only that the
+ /// module is not already in the list, so use moduleIsCompatible first if
+ /// you want to check for compatibility.
+ /// \return true if module was successfully added.
+ bool addLayoutModule(std::string const & modName);
+ /// checks to make sure module's requriements are satisfied, that it does
+ /// not conflict with already-present modules, isn't already loaded, etc.
+ bool moduleCanBeAdded(std::string const & modName) const;
+ ///
+ void addRemovedModule(std::string const & modName)
+ { removedModules_.push_back(modName); }
+ /// Clear the list
+ void clearLayoutModules() { layoutModules_.clear(); }
+ /// Clear the removed module list
+ void clearRemovedModules() { removedModules_.clear(); }