X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FParagraph.h;h=b50cfacc8870793b8c03b348ee4bf78775579148;hb=f3711d8a651445a61e1a759ac7493a9c5c7800e2;hp=53edbc2f5ab5eb598e086c2885979d891329740e;hpb=30c70c167018545139ee27cb965a26bef5914a57;p=lyx.git diff --git a/src/Paragraph.h b/src/Paragraph.h index 53edbc2f5a..b50cfacc88 100644 --- a/src/Paragraph.h +++ b/src/Paragraph.h @@ -17,13 +17,14 @@ #define PARAGRAPH_H #include "FontEnums.h" -#include "Layout.h" #include "insets/InsetCode.h" #include "support/strfwd.h" #include "support/types.h" +#include + namespace lyx { class AuthorList; @@ -34,6 +35,7 @@ class Counters; class Cursor; class CursorSlice; class DocIterator; +class docstring_list; class DocumentClass; class Inset; class InsetBibitem; @@ -41,6 +43,7 @@ class LaTeXFeatures; class Inset_code; class InsetList; class Language; +class Layout; class Font; class Font_size; class MetricsInfo; @@ -49,6 +52,8 @@ class PainterInfo; class ParagraphParameters; class TexRow; class Toc; +class WordLangTuple; +class XHTMLStream; class FontSpan { public: @@ -89,7 +94,7 @@ class Paragraph public: /// Paragraph(); - /// + /// Copy constructor. Paragraph(Paragraph const &); /// Partial copy constructor. /// Copy the Paragraph contents from \p beg to \p end (without end). @@ -100,6 +105,8 @@ public: ~Paragraph(); /// int id() const; + /// + void setId(int id); /// void addChangesToToc(DocIterator const & cdit, Buffer const & buf) const; @@ -112,6 +119,8 @@ public: Language const * from, Language const * to); /// bool isMultiLingual(BufferParams const &) const; + /// + void getLanguages(std::set &) const; /// Convert the paragraph to a string. /// \param AsStringParameter options. This can contain any combination of @@ -145,8 +154,11 @@ public: /// Get the id of the paragraph, usefull for docbook std::string getID(Buffer const & buf, OutputParams const & runparams) const; - /// Get the first word of a paragraph, return the position where it left - pos_type firstWord(odocstream & os, 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; + + /// 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, @@ -154,6 +166,13 @@ public: OutputParams const & runparams, Font const & outerfont, pos_type initial = 0) 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, + pos_type initial = 0) const; /// bool hasSameLayout(Paragraph const & par) const; @@ -166,10 +185,6 @@ public: /// Inset const & inInset() const; /// - InsetCode ownerCode() const; - /// - bool forcePlainLayout() const; - /// bool allowParagraphCustomization() const; /// bool usePlainLayout() const; @@ -198,11 +213,13 @@ public: /// is there a change within the given range ? bool isChanged(pos_type start, pos_type end) const; /// is there an unchanged char at the given pos ? - bool isUnchanged(pos_type pos) const; + bool isChanged(pos_type pos) const; /// is there an insertion at the given pos ? bool isInserted(pos_type pos) const; /// is there a deletion at the given pos ? bool isDeleted(pos_type pos) const; + /// is the whole paragraph deleted ? + bool isDeleted(pos_type start, pos_type end) const; /// will the paragraph be physically merged with the next /// one if the imaginary end-of-par character is logically deleted? @@ -215,10 +232,10 @@ public: void setChange(pos_type pos, Change const & change); /// accept changes within the given range - void acceptChanges(BufferParams const & bparams, pos_type start, pos_type end); + void acceptChanges(pos_type start, pos_type end); /// reject changes within the given range - void rejectChanges(BufferParams const & bparams, pos_type start, pos_type end); + void rejectChanges(pos_type start, pos_type end); /// Paragraphs can contain "manual labels", for example, Description /// environment. The text for this user-editable label is stored in @@ -229,19 +246,16 @@ public: /// 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); - /// translate \p label to the paragraph language if possible. - docstring const translateIfPossible(docstring const & label, - BufferParams const & bparams) const; - /// 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 @@ -350,9 +364,9 @@ public: bool isSeparator(pos_type pos) const; /// bool isLineSeparator(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 character/inset at this point is a word separator. + /// Note that digits in particular are not considered as word separator. + bool isWordSeparator(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 @@ -404,13 +418,29 @@ public: void locateWord(pos_type & from, pos_type & to, word_location const loc) const; /// - void updateWords(CursorSlice const & sl); + void updateWords(); + + /// 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, + 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(); /// - void collectWords(CursorSlice const & sl); + void collectWords(); /// void registerWords();