/// Index into BaseClassList. Basically a 'strong typedef'.
-class BaseClassIndex {
+class LayoutFileIndex {
public:
///
typedef std::string base_type;
///
- BaseClassIndex(base_type t) { data_ = t; }
+ LayoutFileIndex(base_type t) { data_ = t; }
///
operator base_type() const { return data_; }
///
base_type data_;
};
+/// This class amounts to little more than a `strong typedef'.
+/// A LayoutFile represents the layout information that is
+/// contained in a *.layout file.
+class LayoutFile : public TextClass {
+public:
+ /// This should never be used, but it has to be provided for
+ /// std::map operator[] to work. Something like:
+ /// mapthingy[stuff] = otherthing
+ /// creates an empty object before doing the assignment.
+ LayoutFile() {}
+ /// check whether the TeX class is available
+ bool isTeXClassAvailable() const { return texClassAvail_; }
+private:
+ /// Construct a layout with default values. Actual values loaded later.
+ explicit LayoutFile(std::string const &,
+ std::string const & = std::string(),
+ std::string const & = std::string(),
+ bool texClassAvail = false);
+ /// The only class that should create a LayoutFile is
+ /// BaseClassList, which calls the private constructor.
+ friend class BaseClassList;
+};
+
/// A list of base document classes (*.layout files).
/// This is a singleton class. The sole instance is accessed
///
bool haveClass(std::string const & classname) const;
///
- TextClass const & operator[](std::string const & classname) const;
+ LayoutFile const & operator[](std::string const & classname) const;
+ ///
+ 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(BaseClassIndex const & tc);
+ void reset(LayoutFileIndex const & tc);
/// add a textclass from user local directory.
/// \return the identifier for the loaded file, or else an
/// empty string if no file was loaded.
- BaseClassIndex
- addTextClass(std::string const & textclass, std::string const & path);
+ LayoutFileIndex
+ addLayoutFile(std::string const & textclass, std::string const & path);
/// a list of the available classes
- std::vector<BaseClassIndex> classList() const;
+ std::vector<LayoutFileIndex> classList() const;
///
static std::string const localPrefix;
private:
///
- typedef std::map<std::string, TextClass> ClassMap;
+ typedef std::map<std::string, LayoutFile> ClassMap;
/// noncopyable
BaseClassList(BaseClassList const &);
/// nonassignable
};
///
-BaseClassIndex defaultBaseclass();
+LayoutFileIndex defaultBaseclass();
} // namespace lyx