]> git.lyx.org Git - lyx.git/blobdiff - src/LayoutFile.h
* ca/Intro.lyx from Daniel
[lyx.git] / src / LayoutFile.h
index d602bd99148da6a508fa628caee46713372ece72..87548187edc9ba626af9ea70fb9a95d9b7a01f7d 100644 (file)
@@ -5,7 +5,7 @@
  * Licence details can be found in the file COPYING.
  *
  * \author Lars Gullik Bjønnes
- * \author Richard Heck (typedefs and such)
+ * \author Richard Kimberly 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 <string>
 #include <vector>
 
 
 namespace lyx {
 
-class Layout;
+class LayoutModuleList;
 
 /// Index into LayoutFileList. Basically a 'strong typedef'.
 class LayoutFileIndex {
@@ -44,32 +41,35 @@ private:
 };
 
 /// This class amounts to little more than a `strong typedef'.
-/// 
-/// A LayoutFile represents the layout information that is 
+///
+/// A LayoutFile represents the layout information that is
 /// contained in a *.layout file.
-/// 
-/// No document- (that is, Buffer-) specific information should 
-/// be placed in these objects. They are used as the basis for 
+///
+/// No document- (that is, Buffer-) specific information should
+/// be placed in these objects. They are used as the basis for
 /// constructing DocumentClass objects, which are what represent
-/// the layout information associated with a Buffer. (This is also 
+/// the layout information associated with a Buffer. (This is also
 /// a subclass of TextClass, implemented in TextClass.{h,cpp}.)
 /// Buffer-specific information should therefore be placed in a
 /// DocumentClass object.
-/// 
-class LayoutFile : public TextClass, boost::noncopyable {
+///
+class LayoutFile : public TextClass {
 public:
        /// check whether the TeX class is available
        bool isTeXClassAvailable() const { return tex_class_avail_; }
        ///
-       LayoutModuleList const & defaultModules() const 
+       LayoutModuleList const & defaultModules() const
                        { return default_modules_; }
        ///
-       LayoutModuleList const & providedModules() const 
+       LayoutModuleList const & providedModules() const
                        { return provided_modules_; }
        ///
-       LayoutModuleList const & excludedModules() const 
+       LayoutModuleList const & excludedModules() const
                        { return excluded_modules_; }
 private:
+       /// noncopyable
+       LayoutFile(LayoutFile const &);
+       void operator=(LayoutFile const &);
        /// Construct a layout with default values. Actual values loaded later.
        explicit LayoutFile(std::string const & filename,
                        std::string const & className = std::string(),
@@ -90,8 +90,6 @@ private:
 /// via LayoutFileList::get()
 class LayoutFileList {
 public:
-       ///
-       LayoutFileList() {}
        ///
        ~LayoutFileList();
        /// \return The sole instance of this class.
@@ -109,7 +107,7 @@ public:
        /// 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);
+       void reset(LayoutFileIndex const & classname);
 
        /// Add a default textclass with all standard layouts.
        /// Note that this will over-write any information we may have
@@ -119,8 +117,9 @@ public:
        /// 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
-               addLocalLayout(std::string const & textclass, std::string const & path);
+       LayoutFileIndex addLocalLayout(std::string const & textclass,
+                                      std::string const & path,
+                                      std::string const & oldpath = empty_string());
        /// a list of the available classes
        std::vector<LayoutFileIndex> classList() const;
 
@@ -128,6 +127,8 @@ public:
        bool load(std::string const & name, std::string const & buf_path);
 
 private:
+       ///
+       LayoutFileList() {}
        ///
        typedef std::map<std::string, LayoutFile *> ClassMap;
        /// noncopyable