#define PARAGRAPH_H
#include "FontEnums.h"
-#include "Layout.h"
+#include "SpellChecker.h"
#include "insets/InsetCode.h"
#include "support/strfwd.h"
#include "support/types.h"
+#include <set>
+
namespace lyx {
class AuthorList;
class Inset_code;
class InsetList;
class Language;
+class Layout;
class Font;
class Font_size;
class MetricsInfo;
class TexRow;
class Toc;
class WordLangTuple;
+class XHTMLStream;
class FontSpan {
public:
public:
///
Paragraph();
- ///
+ /// Copy constructor.
Paragraph(Paragraph const &);
/// Partial copy constructor.
/// Copy the Paragraph contents from \p beg to \p end (without end).
~Paragraph();
///
int id() const;
+ ///
+ void setId(int id);
///
void addChangesToToc(DocIterator const & cdit, Buffer const & buf) const;
Language const * from, Language const * to);
///
bool isMultiLingual(BufferParams const &) const;
+ ///
+ void getLanguages(std::set<Language const *> &) const;
/// Convert the paragraph to a string.
/// \param AsStringParameter options. This can contain any combination of
///
void validate(LaTeXFeatures &) const;
- ///
- bool latex(BufferParams const &, Font const & outerfont, odocstream &,
+ /// \param force means: output even if layout.inpreamble is true.
+ void latex(BufferParams const &, Font const & outerfont, odocstream &,
TexRow & texrow, OutputParams const &,
- int start_pos = 0, int end_pos = -1) const;
+ int start_pos = 0, int end_pos = -1, bool force = false) const;
/// Can we drop the standard paragraph wrapper?
bool emptyTag() const;
pos_type firstWordDocBook(odocstream & os, OutputParams const & runparams) const;
/// Output the first word of a paragraph, return the position where it left.
- pos_type firstWordLyXHTML(odocstream & os, OutputParams const & runparams) const;
+ pos_type firstWordLyXHTML(XHTMLStream & xs, OutputParams const & runparams) const;
/// Writes to stream the docbook representation
void simpleDocBookOnePar(Buffer const & buf,
/// \return any material that has had to be deferred until after the
/// paragraph has closed.
docstring simpleLyXHTMLOnePar(Buffer const & buf,
- odocstream &,
+ XHTMLStream & xs,
OutputParams const & runparams,
Font const & outerfont,
pos_type initial = 0) const;
///
Inset const & inInset() const;
///
- bool forcePlainLayout() const;
- ///
bool allowParagraphCustomization() const;
///
bool usePlainLayout() const;
/// recompute this value
void setBeginOfBody();
+ ///
+ 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;
/// Set label width string.
void setLabelWidthString(docstring const & s);
- /// Expand the counters for the labelstring of \c layout
- docstring expandLabel(Layout const &, BufferParams const &,
- bool process_appendix = true) const;
/// Actual paragraph alignment used
char getAlign() const;
/// The nesting depth of a paragraph
/// Spellcheck word at position \p from and fill in found misspelled word
/// and \p suggestions if \p do_suggestion is true.
- /// \return true if pointed word is misspelled.
- bool spellCheck(pos_type & from, pos_type & to, WordLangTuple & wl,
+ /// \return result from spell checker, SpellChecker::UNKNOWN_WORD when misspelled.
+ SpellChecker::Result spellCheck(pos_type & from, pos_type & to, WordLangTuple & wl,
docstring_list & suggestions, bool do_suggestion = true) const;
/// Spellcheck word at position \p pos.
/// \return true if pointed word is misspelled.
bool isMisspelled(pos_type pos) const;
+ /// an automatically generated identifying label for this paragraph.
+ /// presently used only in the XHTML output routines.
+ std::string magicLabel() const;
private:
+ /// Expand the counters for the labelstring of \c layout
+ docstring expandParagraphLabel(Layout const &, BufferParams const &,
+ bool process_appendix) const;
///
void deregisterWords();
///