]> git.lyx.org Git - lyx.git/blobdiff - src/OutputParams.h
Fix bug #8105: Crash when deleting math macro from the inside
[lyx.git] / src / OutputParams.h
index 534e9721930167d6ed7f854ea6d6c4c7238358ca..15736f667da4a11fc884036bcc92d3276f83a7b9 100644 (file)
 #ifndef OUTPUTPARAMS_H
 #define OUTPUTPARAMS_H
 
-#include <string>
 
-#include "support/types.h"
-#include <boost/shared_ptr.hpp>
+#include "support/shared_ptr.h"
 #include "Changes.h"
 
 
@@ -27,15 +25,25 @@ class ExportData;
 class Font;
 class Language;
 
-
 class OutputParams {
 public:
        enum FLAVOR {
+               DVILUATEX,
                LATEX,
+               LUATEX,
                PDFLATEX,
                XETEX,
                XML,
-               HTML
+               HTML,
+               TEXT
+       };
+       
+       enum MathFlavor {
+               NotApplicable,
+               MathAsMathML,
+               MathAsHTML,
+               MathAsImages,
+               MathAsLaTeX
        };
 
        enum TableCell {
@@ -53,11 +61,18 @@ public:
        OutputParams(Encoding const *);
        ~OutputParams();
 
-       /** The latex that we export depends occasionally on what is to
+       /** The file that we export depends occasionally on what is to
            compile the file.
        */
        FLAVOR flavor;
-
+       /// is it some flavor of LaTeX?
+       bool isLaTeX() const;
+       /// does this flavour support full unicode?
+       bool isFullUnicode() const;
+       
+       /// Same, but for math output, which only matter is XHTML output.
+       MathFlavor math_flavor;
+       
        /** Are we to write a 'nice' LaTeX file or not.
            This esentially seems to mean whether InsetInclude, InsetGraphics
            and InsetExternal should add the absolute path to any external
@@ -125,6 +140,10 @@ public:
        */
        bool use_babel;
 
+       /** Do we use polyglossia (instead of babel)?
+       */
+       bool use_polyglossia;
+
        /** Are we generating multiple indices?
        */
        bool use_indices;
@@ -154,7 +173,7 @@ public:
            This is a hack: Make it possible to add stuff to constant
            OutputParams instances.
        */
-       boost::shared_ptr<ExportData> exportdata;
+       shared_ptr<ExportData> exportdata;
 
        /** Whether we are inside a comment inset. Insets that are including
         *  external files like InsetGraphics, InsetInclude and InsetExternal
@@ -179,6 +198,11 @@ public:
         */
        bool inIndexEntry;
 
+       /** Whether we are inside an IPA inset.
+        *  Needed for proper IPA output.
+        */
+       bool inIPA;
+
        /** Whether we are inside an inset that is logically deleted.
         *  A value > 0 indicates a deleted inset.
          */
@@ -192,25 +216,49 @@ public:
        /** allow output of only part of the top-level paragraphs
         *  par_begin: beginning paragraph
         */
-       pit_type par_begin;
+       mutable 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;
+       mutable pit_type par_end;
+
+       /// Id of the last paragraph before an inset
+       mutable int lastid;
+
+       /// Last position in the last paragraph before an inset
+       mutable int lastpos;
 
        /// is this the last paragraph in the current buffer/inset?
        bool isLastPar;
+       
 
        /** whether or not do actual file copying and image conversion
         *  This mode will be used to preview the source code
         */
        bool dryrun;
+       
        /// Should we output verbatim or escape LaTeX's special chars?
-       bool verbatim;
-       /// Should we output captions? (Used in HTML output.)
-       bool disable_captions;
+       bool pass_thru;
+       
+       /// Should we output captions?
+       bool html_disable_captions;
+       
+       /// Are we already in a paragraph?
+       bool html_in_par;
+       
+       /// Does the present context even permit paragraphs?
+       bool html_make_pars;
+       
+       /// Are we generating this material for inclusion in a TOC-like entity?
+       bool for_toc;
+       
+       /// Include all children notwithstanding the use of \includeonly
+       bool includeall;
+
+       /// Explicit output folder, if any is desired
+       std::string export_folder;
 };