X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FPDFOptions.h;h=84580f23e14e5289f28b88a751435b211f68e909;hb=f1687373b1486e0f66b6545acae3b4384c195658;hp=5744226ee9ab9dc66ccf03ac2fa0cd56df135ebb;hpb=2539f2e5eb731c33c530987698cf4e6035f657d5;p=lyx.git diff --git a/src/PDFOptions.h b/src/PDFOptions.h index 5744226ee9..84580f23e1 100644 --- a/src/PDFOptions.h +++ b/src/PDFOptions.h @@ -12,132 +12,140 @@ #ifndef PDFOPTIONS_H #define PDFOPTIONS_H - -#include -#include #include "support/docstream.h" -using std::string; - namespace lyx { class Lexer; /// Options for PDF generation -class PDFOptions { -public: - PDFOptions() { clear(); } - /// - bool use_hyperref; - /// - string title; - /// - string author; - /// - string subject; - /// - string keywords; - /*! - * A set of Acrobat bookmarks are written, in a manner similar to the - * table of contents. - * bookmarks boolean true - */ - bool bookmarks; - /*! - * If Acrobat bookmarks are requested, include section numbers. - * bookmarksnumbered boolean false - */ - bool bookmarksnumbered; - /*! - * If Acrobat bookmarks are requested, show them with all the subtrees - * expanded. - * bookmarksopen boolean false - */ - bool bookmarksopen; - /*! - * Level (\maxdimen) to which bookmarks are open - * bookmarksopenlevel parameter - */ - string bookmarksopenlevel; - /*! - * Allows link text to break across lines. - * breaklinks boolean false - */ - bool breaklinks; - /*! - * The style of box around links; defaults to a box with lines of 1pt - * thickness, but the colorlinks option resets it to produce no border. - * pdfborder "0 0 1" / "0 0 0" - * Note that the color of link borders can be specified only as 3 - * numbers in the range 0..1, giving an RGB color. - * You cannot use colors defined in TEX. - * - * We represent here only the last bit, there is no semantics in the - * first two. Morover the aim is not to represent the whole pdfborder, - * but just to deny the ugly boxes around pdf links. - */ - bool pdfborder; - /*! - * colorlinks boolean false - */ - bool colorlinks; - /*! - * Adds backlink text to the end of each item in the bibliography, - * as a list of section 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 - */ - bool pagebackref; - /*! - * Determines how the file is opening in Acrobat; - * the possibilities are None, UseThumbs (show thumbnails), UseOutlines - * (show bookmarks), and FullScreen. - * If no mode if explicitly chosen, but the bookmarks option is set, - * UseOutlines is used. - * pagemode text empty - * - * We currently implement only FullScreen, but all modes can be saved - * here, lyx format & latex writer is prepared. - * The only thing needed in such a case is wider Settings - * dialog -> PDFOptions.pagemode . - */ - string pagemode; - ///latex string - static const string pagemode_fullscreen; - /*! - * Additional parameters for hyperref given from user. - */ - string quoted_options; - /*! - * Possible syntax check of users additional parameters here. - */ - string quoted_options_get() const; +/* + Possible cleanups, left for next fileformat change: + + - bookmarksopenlevel is stored in .lyx as string; + after change to spinbox it would be appropriate + change to int. + - store_options flag can be completely replaced by + function store_options() doing essentialy the same + as empty() now. +*/ - /*! - * 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; - /// check for string settings - bool empty() const; - /// output to lyx header - void writeFile(std::ostream &) const; - /// output to tex header - void writeLaTeX(odocstream &) const; - /// read tokens from lyx header - string readToken(Lexer &lex, string const & token); - /// keep implicit hyperref settings - void clear(); +class PDFOptions { +public: + /// + PDFOptions() { clear(); } + /// check whether user added any settings for hyperref + bool empty() const; + /// output to lyx header + void writeFile(std::ostream &) const; + /// output to tex header + void writeLaTeX(odocstringstream &) const; + /// read tokens from lyx header + std::string readToken(Lexer &lex, std::string const & token); + /// keep implicit hyperref settings + void clear(); + /// + bool use_hyperref; + /// + std::string title; + /// + std::string author; + /// + std::string subject; + /// + std::string keywords; + /** + * A set of Acrobat bookmarks are written, in a manner similar to the + * table of contents. + * bookmarks boolean true + */ + bool bookmarks; + /** + * If Acrobat bookmarks are requested, include section numbers. + * bookmarksnumbered boolean false + */ + bool bookmarksnumbered; + /** + * If Acrobat bookmarks are requested, show them with all the subtrees + * expanded. + * bookmarksopen boolean false + */ + bool bookmarksopen; + /** + * Level (\maxdimen) to which bookmarks are open + * bookmarksopenlevel parameter + */ + int bookmarksopenlevel; + /** + * Allows link text to break across lines. + * breaklinks boolean false + */ + bool breaklinks; + /** + * The style of box around links; defaults to a box with lines of 1pt + * thickness, but the colorlinks option resets it to produce no border. + * pdfborder "0 0 1" / "0 0 0" + * Note that the color of link borders can be specified only as 3 + * numbers in the range 0..1, giving an RGB color. + * You cannot use colors defined in TEX. + * + * We represent here only the last bit, there is no semantics in the + * first two. Morover the aim is not to represent the whole pdfborder, + * but just to deny the ugly boxes around pdf links. + */ + bool pdfborder; + /** + * colorlinks boolean false + */ + bool colorlinks; + /** + * Adds backlink text to the end of each item in the bibliography, + * as a list of section 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 + */ + bool pagebackref; + /** + * Determines how the file is opening in Acrobat; + * the possibilities are None, UseThumbs (show thumbnails), UseOutlines + * (show bookmarks), and FullScreen. + * If no mode if explicitly chosen, but the bookmarks option is set, + * UseOutlines is used. + * pagemode text empty + * + * We currently implement only FullScreen, but all modes can be saved + * here, lyx format & latex writer is prepared. + * The only thing needed in such a case is wider Settings + * dialog -> PDFOptions.pagemode . + */ + std::string pagemode; + ///latex string + static const std::string pagemode_fullscreen; + /** + * Additional parameters for hyperref given from user. + */ + std::string quoted_options; + /** + * Possible syntax check of users additional parameters here. + */ + 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; }; } // namespace lyx