#ifndef PDFOPTIONS_H
#define PDFOPTIONS_H
-#include "support/strfwd.h"
-
#include <string>
namespace lyx {
-class Lexer;
+class OutputParams;
+class otexstream;
+
+namespace support { class Lexer; }
+
+// FIXME UNICODE
+// Write functions need to use odostream instead of ostream before
+// we can use docstring instead of string.
/// Options for PDF generation
class PDFOptions {
/// output to lyx header
void writeFile(std::ostream &) const;
/// output to tex header
- void writeLaTeX(odocstream &) const;
+ void writeLaTeX(OutputParams &, otexstream &,
+ bool hyperref_already_provided) const;
/// read tokens from lyx header
- std::string readToken(Lexer &lex, std::string const & token);
+ std::string readToken(support::Lexer &lex, std::string const & token);
/// set implicit settings for hyperref
void clear();
bool colorlinks;
/**
* Adds backlink text to the end of each item in the bibliography,
- * as a list of section numbers.
+ * as a list of section/slide/page numbers.
* This can only work properly if there is a blank line after each
* \bibitem.
- * backref boolean false
- */
- bool backref;
- /**
- * Adds backlink text to the end of each item in the bibliography,
- * as a list of page numbers.
- * pagebackref boolean false
+ * backref string empty(="section"), "false", "section", "slide", "page"
+ *
+ * Internally we use false/section/slide/pages. See also bug 5340.
*/
- bool pagebackref;
+ std::string backref;
/**
* Determines how the file is opening in Acrobat;
* the possibilities are None, UseThumbs (show thumbnails), UseOutlines
std::string quoted_options;
/**
* Possible syntax check of users additional parameters here.
+ * Returns repaired string. For the time being only newlines
+ * are checked.
*/
- std::string quoted_options_get() const;
-
-
- /**
- * Flag indicating whether user made some input into PDF preferences.
- * We want to save options, when user decide to switch off PDF support
- * for a while.
- */
- bool store_options;
+ std::string quoted_options_check(std::string const & str) const;
};
} // namespace lyx