class Counters;
class Cursor;
class CursorSlice;
+class DocIterator;
class DocumentClass;
class Inset;
class InsetBibitem;
class PainterInfo;
class ParagraphParameters;
class TexRow;
-
+class Toc;
class FontSpan {
public:
};
+///
+enum AsStringParameter
+{
+ AS_STR_NONE = 0, ///< No option, only printable characters.
+ AS_STR_LABEL = 1, ///< Prefix with paragraph label.
+ AS_STR_INSETS = 2 ///< Go into insets.
+};
+
+
/// A Paragraph holds all text, attributes and insets in a text paragraph
class Paragraph
{
Paragraph();
///
Paragraph(Paragraph const &);
+ /// Partial copy constructor.
+ /// Copy the Paragraph contents from \p beg to \p end (without end).
+ Paragraph(Paragraph const & par, pos_type beg, pos_type end);
///
Paragraph & operator=(Paragraph const &);
///
///
int id() const;
+ ///
+ void addChangesToToc(DocIterator const & cdit, Buffer const & buf) const;
///
Language const * getParLanguage(BufferParams const &) const;
///
bool isMultiLingual(BufferParams const &) const;
/// Convert the paragraph to a string.
- /// Used for building the table of contents
- docstring asString(bool label) const;
+ /// \param AsStringParameter options. This can contain any combination of
+ /// asStringParameter values. Valid examples:
+ /// asString(AS_STR_LABEL)
+ /// asString(AS_STR_LABEL | AS_STR_INSETS)
+ /// asString(AS_STR_INSETS)
+ docstring asString(int options = AS_STR_NONE) const;
///
- docstring asString(pos_type beg, pos_type end, bool label) const;
+ docstring asString(pos_type beg, pos_type end,
+ int options = AS_STR_NONE) const;
///
void write(std::ostream &, BufferParams const &,
void makeSameLayout(Paragraph const & par);
///
- void setInsetOwner(Inset * inset);
+ void setInsetOwner(Inset const * inset);
///
- Inset * inInset() const;
+ Inset const & inInset() const;
///
InsetCode ownerCode() const;
///
- bool forceEmptyLayout() const;
+ bool forcePlainLayout() const;
///
bool allowParagraphCustomization() const;
///
- bool useEmptyLayout() const;
+ bool usePlainLayout() const;
///
pos_type size() const;
///
///
Layout const & layout() const;
- ///
+ /// Do not pass a temporary to this!
void setLayout(Layout const & layout);
///
- void setEmptyOrDefaultLayout(DocumentClass const & tc);
+ void setPlainOrDefaultLayout(DocumentClass const & tc);
/// This is the item depth, only used by enumerate and itemize
signed char itemdepth;
void insertInset(pos_type pos, Inset * inset,
Font const &, Change const & change);
///
- bool insetAllowed(InsetCode code);
- ///
Inset * getInset(pos_type pos);
///
Inset const * getInset(pos_type pos) const;
///
InsetList const & insetList() const;
+ ///
+ void setBuffer(Buffer &);
///
bool isHfill(pos_type pos) const;
/// True if the character/inset at this point can be part of a word.
/// Note that digits in particular are considered as letters
bool isLetter(pos_type pos) const;
+ /// True if the element at this point is a character that is not a letter.
+ bool isChar(pos_type pos) const;
+ /// True if the element at this point is a space
+ bool isSpace(pos_type pos) const;
/// returns true if at least one line break or line separator has been deleted
/// at the beginning of the paragraph (either physically or logically)