#ifndef PARAGRAPH_H
#define PARAGRAPH_H
-#include "FontEnums.h"
#include "LayoutEnums.h"
#include "SpellChecker.h"
#include "support/types.h"
#include <set>
+#include <vector>
namespace lyx {
class Buffer;
class BufferParams;
class Change;
-class Counters;
-class Cursor;
-class CursorSlice;
class DocIterator;
class docstring_list;
class DocumentClass;
class Inset;
-class InsetBibitem;
class LaTeXFeatures;
class InsetList;
class Language;
class Layout;
class Font;
-class MetricsInfo;
class OutputParams;
-class PainterInfo;
class ParagraphParameters;
class TocBackend;
class WordLangTuple;
-class XHTMLStream;
+class XMLStream;
class otexstream;
+/// Inset identifier (above 0x10ffff, for ucs-4)
+char_type const META_INSET = 0x200001;
+
class FontSpan {
public:
/// Invalid font span containing no character
AS_STR_INSETS = 2, ///< Go into insets.
AS_STR_NEWLINES = 4, ///< Get also newline characters.
AS_STR_SKIPDELETE = 8, ///< Skip deleted text in change tracking.
- AS_STR_PLAINTEXT = 16 ///< Don't export formatting when descending into insets.
+ AS_STR_PLAINTEXT = 16, ///< Don't export formatting when descending into insets.
+ AS_STR_MATHED = 32 ///< Use a format suitable for mathed (eg. for InsetRef).
};
/// Can we drop the standard paragraph wrapper?
bool emptyTag() const;
- /// Get the id of the paragraph, usefull for docbook
+ /// Get the id of the paragraph, useful for DocBook
std::string getID(Buffer const & buf, OutputParams const & runparams) const;
/// Output the first word of a paragraph, return the position where it left.
- pos_type firstWordDocBook(odocstream & os, OutputParams const & runparams) const;
+ pos_type firstWordDocBook(XMLStream & xs, OutputParams const & runparams) const;
/// Output the first word of a paragraph, return the position where it left.
- pos_type firstWordLyXHTML(XHTMLStream & xs, OutputParams const & runparams) const;
-
- /// Writes to stream the docbook representation
- void simpleDocBookOnePar(Buffer const & buf,
- odocstream &,
- OutputParams const & runparams,
- Font const & outerfont,
- pos_type initial = 0) const;
+ pos_type firstWordLyXHTML(XMLStream & xs, OutputParams const & runparams) const;
+
+ /// Outputs to stream the DocBook representation, one element per paragraph.
+ std::tuple<std::vector<docstring>, std::vector<docstring>, std::vector<docstring>>
+ simpleDocBookOnePar(Buffer const & buf,
+ OutputParams const & runparams,
+ Font const & outerfont,
+ pos_type initial = 0,
+ bool is_last_par = false,
+ bool ignore_fonts = false) const;
+
/// \return any material that has had to be deferred until after the
/// paragraph has closed.
docstring simpleLyXHTMLOnePar(Buffer const & buf,
- XHTMLStream & xs,
- OutputParams const & runparams,
- Font const & outerfont,
- bool start_paragraph = true,
- bool close_paragraph = true,
- pos_type initial = 0) const;
+ XMLStream & xs,
+ OutputParams const & runparams,
+ Font const & outerfont,
+ bool start_paragraph = true,
+ bool close_paragraph = true,
+ pos_type initial = 0) const;
///
bool hasSameLayout(Paragraph const & par) const;
///
bool isPassThru() const;
///
+ bool parbreakIsNewline() const;
+ ///
+ bool isPartOfTextSequence() const;
+ ///
pos_type size() const;
///
bool empty() const;
///
docstring expandLabel(Layout const &, BufferParams const &) const;
///
- docstring expandDocBookLabel(Layout const &, BufferParams const &) const;
- ///
docstring const & labelString() const;
/// the next two functions are for the manual labels
docstring const getLabelWidthString() const;