* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
+ * \author Richard Heck (typedefs and such)
*
* Full author contact details are available in file CREDITS.
*/
#ifndef BASECLASSLIST_H
#define BASECLASSLIST_H
+#include "LayoutModuleList.h"
#include "TextClass.h"
#include "support/strfwd.h"
#include <boost/noncopyable.hpp>
+#include <set>
+#include <string>
#include <vector>
public:
/// check whether the TeX class is available
bool isTeXClassAvailable() const { return texClassAvail_; }
+ ///
+ LayoutModuleList const & defaultModules() const
+ { return default_modules_; }
+ ///
+ LayoutModuleList const & providedModules() const
+ { return provided_modules_; }
+ ///
+ LayoutModuleList const & excludedModules() const
+ { return excluded_modules_; }
private:
/// Construct a layout with default values. Actual values loaded later.
explicit LayoutFile(std::string const & filename,
public:
///
LayoutFileList() {}
+ ///
~LayoutFileList();
/// \return The sole instance of this class.
static LayoutFileList & get();
bool empty() const { return classmap_.empty(); }
///
bool haveClass(std::string const & classname) const;
- ///
+ /// Note that this will assert if we don't have classname, so
+ /// check via haveClass() first.
LayoutFile const & operator[](std::string const & classname) const;
- ///
+ /// Note that this will assert if we don't have classname, so
+ /// check via haveClass() first.
LayoutFile & operator[](std::string const & classname);
/// Read textclass list. Returns false if this fails.
bool read();
/// Clears the textclass so as to force it to be reloaded
void reset(LayoutFileIndex const & tc);
- enum Layout_Type {
- System,
- Local
- };
-
+ /// add a default textclass with all standard layouts.
+ LayoutFileIndex addEmptyClass(std::string const & textclass);
+
/// add a textclass from user local directory.
/// \return the identifier for the loaded file, or else an
/// empty string if no file was loaded.
LayoutFileIndex
- addLayoutFile(std::string const & textclass, std::string const & path,
- Layout_Type type);
+ addLocalLayout(std::string const & textclass, std::string const & path);
/// a list of the available classes
std::vector<LayoutFileIndex> classList() const;
- ///
- static std::string const localPrefix;
+
+ ///
+ bool load(std::string const & name, std::string const & buf_path);
+
private:
///
typedef std::map<std::string, LayoutFile *> ClassMap;