-
-#include "LString.h"
-#include "layout.h"
-
-class BufferParams;
-struct Language;
-
-/** The packages and commands that a buffer needs. This struct
- contains an entry for each of the latex packages and
- commands that a buffer might need. This struct is supposed to be
- extended as the need arises. Remember to update the validate function
- in buffer.C and paragraph.C when you do so.
-*/
-struct LaTeXFeatures {
- ///
- LaTeXFeatures(BufferParams const &, LyXTextClass::size_type n) ;
- /// The packaes needed by the document
- string const getPackages();
+#include <list>
+#include <map>
+
+
+namespace lyx {
+
+class Buffer;
+class BufferParams;
+class InsetLayout;
+class Language;
+
+/** The packages and commands that a buffer needs. This class
+ * contains a list<string>. Each of the LaTeX packages that a buffer needs
+ * should be added with void require(string const & name).
+ *
+ * i.e require("amssymb")
+ *
+ * To add support you should only need to require() the package name as
+ * packages which don't have special requirements are handled automatically.
+ * If your new package does need special consideration you'll need to alter
+ * string const getPackages() const;
+ * Remember to update the validate function in Buffer.cpp and Paragraph.cpp
+ * when you do so.
+ */
+class LaTeXFeatures {
+public:
+ ///
+ LaTeXFeatures(Buffer const &, BufferParams const &,
+ OutputParams const &);
+ /// The color packages
+ std::string const getColorOptions() const;
+ /// The packages needed by the document
+ std::string const getPackages() const;