]> git.lyx.org Git - lyx.git/blob - src/outputparams.h
Two fixes involving RtL text drawing
[lyx.git] / src / outputparams.h
1 // -*- C++ -*-
2 /**
3  * \file outputparams.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  *  \author Angus Leeming
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef OUTPUTPARAMS_H
13 #define OUTPUTPARAMS_H
14
15 #include <string>
16
17 #include "support/types.h"
18 #include <boost/shared_ptr.hpp>
19
20
21 class ExportData;
22 class LyXFont;
23
24
25 class OutputParams {
26 public:
27         //
28         enum FLAVOR {
29                 LATEX,
30                 PDFLATEX,
31                 XML
32         };
33
34         OutputParams();
35         ~OutputParams();
36
37         /** The latex that we export depends occasionally on what is to
38             compile the file.
39         */
40         FLAVOR flavor;
41
42         /** Are we to write a 'nice' LaTeX file or not.
43             This esentially seems to mean whether InsetInclude, InsetGraphics
44             and InsetExternal should add the absolute path to any external
45             files or not.
46         */
47         bool nice;
48
49         /** moving_arg == true means that the environment in which the inset
50             is typeset is a moving argument. The inset should take care about
51             fragile commands by preceding the latex with \\protect.
52         */
53         bool moving_arg;
54
55         /** intitle == true means that the environment in which the
56             inset is typeset is part of a title (before a \\maketitle).
57             Footnotes in such environments have moving arguments.
58         */
59         bool intitle;
60
61         /** the font at the point where the inset is
62          */
63         LyXFont const * local_font;
64
65         /** Document language babel name
66          */
67         mutable std::string document_language;
68
69         /** free_spacing == true means that the inset is in a free-spacing
70             paragraph.
71         */
72         bool free_spacing;
73
74         /** This var is set by the return value from BufferParams::writeLaTeX
75         */
76         bool use_babel;
77
78         /** Line length to use with plaintext export.
79         */
80         lyx::size_type linelen;
81
82         /** The depth of the current paragraph, set for plaintext
83          *  export and used by InsetTabular
84          */
85         int depth;
86
87         /** Export data filled in by the latex(), docbook() etc methods.
88             This is a hack: Make it possible to add stuff to constant
89             OutputParams instances.
90         */
91         boost::shared_ptr<ExportData> exportdata;
92 };
93
94 #endif // NOT OUTPUTPARAMS_H