#include "insets/insetquotes.h"
-#include "support/cow_ptr.h"
+#include "support/copied_ptr.h"
#include "support/types.h"
-#include "support/std_string.h"
#include <vector>
struct Language;
+namespace lyx {
+namespace biblio {
+
+enum CiteEngine {
+ ENGINE_BASIC,
+ ENGINE_NATBIB_AUTHORYEAR,
+ ENGINE_NATBIB_NUMERICAL,
+ ENGINE_JURABIB
+};
+
+class CiteEngine_enum {
+ CiteEngine val_;
+public:
+ CiteEngine_enum(CiteEngine val) : val_(val) {}
+ operator CiteEngine() const{ return val_; }
+};
+
+} // namespace biblio
+} // namespace lyx
+
+
/** Buffer parameters.
- This class contains all the parameters for this a buffer uses. Some
- work needs to be done on this class to make it nice. Now everything
- is in public.
-*/
+ * This class contains all the parameters for this a buffer uses. Some
+ * work needs to be done on this class to make it nice. Now everything
+ * is in public.
+ */
class BufferParams {
public:
///
~BufferParams();
/// read a header token, if unrecognised, return it or an unknown class name
- string const readToken(LyXLex & lex, string const & token);
+ std::string const readToken(LyXLex & lex, std::string const & token);
///
void writeFile(std::ostream &) const;
/** \returns true if the babel package is used (interogates
- the BufferParams and a LyXRC variable).
- This returned value can then be passed to the insets...
+ * the BufferParams and a LyXRC variable).
+ * This returned value can then be passed to the insets...
*/
bool writeLaTeX(std::ostream &, LaTeXFeatures &, TexRow &) const;
void setDefSkip(VSpace const & vs);
/** Wether paragraphs are separated by using a indent like in
- articles or by using a little skip like in letters.
- */
+ * articles or by using a little skip like in letters.
+ */
PARSEP paragraph_separation;
///
InsetQuotes::quote_language quotes_language;
///
InsetQuotes::quote_times quotes_times;
///
- string fontsize;
+ std::string fontsize;
///
lyx::textclass_type textclass;
///
///
bool use_geometry;
///
- string paperwidth;
+ std::string paperwidth;
///
- string paperheight;
+ std::string paperheight;
///
- string leftmargin;
+ std::string leftmargin;
///
- string topmargin;
+ std::string topmargin;
///
- string rightmargin;
+ std::string rightmargin;
///
- string bottommargin;
+ std::string bottommargin;
///
- string headheight;
+ std::string headheight;
///
- string headsep;
+ std::string headsep;
///
- string footskip;
+ std::string footskip;
/* some LaTeX options */
/// The graphics driver
- string graphicsDriver;
+ std::string graphicsDriver;
///
- string fonts;
+ std::string fonts;
///
Spacing & spacing();
Spacing const & spacing() const;
BranchList & branchlist();
BranchList const & branchlist() const;
///
- string inputenc;
+ std::string inputenc;
///
- string preamble;
+ std::string preamble;
///
- string options;
+ std::string options;
///
- string float_placement;
+ std::string float_placement;
///
unsigned int columns;
///
LyXTextClass::PageSides sides;
///
- string pagestyle;
+ std::string pagestyle;
/// \param index should lie in the range 0 <= \c index <= 3.
Bullet & temp_bullet(lyx::size_type index);
Bullet const & temp_bullet(lyx::size_type index) const;
void readLanguage(LyXLex &);
///
void readGraphicsDriver(LyXLex &);
+ ///
+ void readBullets(LyXLex &);
+ ///
+ void readBulletsLaTeX(LyXLex &);
/// use AMS package, not, or auto
enum AMS {
};
AMS use_amsmath;
///
- bool use_natbib;
+ lyx::biblio::CiteEngine cite_engine;
///
- bool use_numerical_citations;
+ bool use_bibtopic;
/// revision tracking for this buffer ?
bool tracking_changes;
/// Time ago we agreed that this was a buffer property [ale990407]
- string parentname;
+ std::string parentname;
///
bool compressed;
/// map of the file's author IDs to buffer author IDs
std::vector<int> author_map;
///
- string const dvips_options() const;
+ std::string const dvips_options() const;
+ ///
+ std::string const paperSizeName() const;
///
- string const paperSizeName() const;
+ std::string const babelCall(std::string const & lang_opts) const;
private:
/** Use the Pimpl idiom to hide those member variables that would otherwise
- drag in other header files.
+ * drag in other header files.
*/
class Impl;
- lyx::support::cow_ptr<Impl> pimpl_;
+ struct MemoryTraits {
+ static Impl * clone(Impl const *);
+ static void destroy(Impl *);
+ };
+ lyx::support::copied_ptr<Impl, MemoryTraits> pimpl_;
};
#endif