#ifndef OUTPUTPARAMS_H
#define OUTPUTPARAMS_H
+#include <string>
+
#include "support/types.h"
+#include <boost/shared_ptr.hpp>
+
+
+namespace lyx {
+
+class ExportData;
+class LyXFont;
-struct OutputParams {
- //
+
+class OutputParams {
+public:
enum FLAVOR {
LATEX,
PDFLATEX,
XML
};
- OutputParams()
- : flavor(LATEX), nice(false), moving_arg(false),
- free_spacing(false), use_babel(false),
- mixed_content(false), linelen(0)
- {}
+ OutputParams();
+ ~OutputParams();
/** The latex that we export depends occasionally on what is to
compile the file.
/** moving_arg == true means that the environment in which the inset
is typeset is a moving argument. The inset should take care about
- fragile commands by preceding the latex with \protect.
+ fragile commands by preceding the latex with \\protect.
*/
bool moving_arg;
+ /** intitle == true means that the environment in which the
+ inset is typeset is part of a title (before a \\maketitle).
+ Footnotes in such environments have moving arguments.
+ */
+ bool intitle;
+
+ /** the font at the point where the inset is
+ */
+ LyXFont const * local_font;
+
+ /** Document language babel name
+ */
+ mutable std::string document_language;
+
/** free_spacing == true means that the inset is in a free-spacing
paragraph.
*/
*/
bool use_babel;
- /** Used for docbook to see if inside a region of mixed content.
- In that case all the white spaces are significant and can not appear
- at the begin or end.
+ /** Line length to use with plaintext export.
*/
- bool mixed_content;
+ size_type linelen;
+
+ /** The depth of the current paragraph, set for plaintext
+ * export and used by InsetTabular
+ */
+ int depth;
- /** Line length to use with ascii export.
+ /** Export data filled in by the latex(), docbook() etc methods.
+ This is a hack: Make it possible to add stuff to constant
+ OutputParams instances.
*/
- lyx::size_type linelen;
+ boost::shared_ptr<ExportData> exportdata;
+
+ /** Whether we are inside a comment inset. Insets that are including
+ * external files like InsetGraphics, InsetInclude and InsetExternal
+ * may only write the usual output and must not attempt to do
+ * something with the included files (e.g. copying, converting)
+ * if this flag is true, since they may not exist.
+ */
+ bool inComment;
+
+ /** allow output of only part of the top-level paragraphs
+ * par_begin: beginning paragraph
+ */
+ pit_type par_begin;
+
+ /** allow output of only part of the top-level paragraphs
+ * par_end: par_end-1 is the ending paragraph
+ * if par_begin=par_end, output all paragraphs
+ */
+ pit_type par_end;
+
+ /** whether or not do actual file copying and image conversion
+ * This mode will be used to preview the source code
+ */
+ bool dryrun;
};
-#endif // LATEXRUNPARAMS_H
+
+} // namespace lyx
+
+#endif // NOT OUTPUTPARAMS_H