]> git.lyx.org Git - lyx.git/blobdiff - src/outputparams.h
Fix loop when opening TOC widget in an empty document, basically by Richard Heck.
[lyx.git] / src / outputparams.h
index 40a119d7d25305ff16a87896d0f6b08e9a4a95fa..fa9b98cdf04bd54461a6b6e5f722ffecf580fd88 100644 (file)
 #include <boost/shared_ptr.hpp>
 
 
+namespace lyx {
+
+
+class Encoding;
 class ExportData;
 class LyXFont;
 
 
 class OutputParams {
 public:
-       //
        enum FLAVOR {
                LATEX,
                PDFLATEX,
                XML
        };
 
-       OutputParams();
+       OutputParams(Encoding const *);
        ~OutputParams();
 
        /** The latex that we export depends occasionally on what is to
@@ -66,6 +69,25 @@ public:
         */
        mutable std::string document_language;
 
+       /** Current stream encoding. Only used for LaTeX.
+           This must be set to the document encoding (via the constructor)
+           before output starts. Afterwards it must be kept up to date for
+           each single character (\see Paragraph::simpleTeXOnePar).
+           This does also mean that you need to set it back if you use a
+           copy (e.g. in insets): \code
+           int InsetFoo::latex(..., OutputParams const & runparams_in) const
+           {
+               OutputParams runparams(runparams_in);
+               runparams.inComment = true;
+               ...
+               InsetBla::latex(..., runparams);
+               ...
+               runparams_in.encoding = runparams.encoding;
+           }
+           \endcode
+        */
+       mutable Encoding const * encoding;
+
        /** free_spacing == true means that the inset is in a free-spacing
            paragraph.
        */
@@ -77,7 +99,7 @@ public:
 
        /** Line length to use with plaintext export.
        */
-       lyx::size_type linelen;
+       size_type linelen;
 
        /** The depth of the current paragraph, set for plaintext
         *  export and used by InsetTabular
@@ -97,6 +119,25 @@ public:
         *  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;
 };
 
+
+} // namespace lyx
+
 #endif // NOT OUTPUTPARAMS_H