]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.h
Fix yet another thinko in the math grid paste code
[lyx.git] / src / Paragraph.h
index 84fcf759e225b8e70a18b0fce9e5626a5b26ee82..60b829e813ced09832c6edbf56dec0e5b005f77e 100644 (file)
@@ -50,7 +50,7 @@ class PainterInfo;
 class ParagraphParameters;
 class TocBackend;
 class WordLangTuple;
-class XHTMLStream;
+class XMLStream;
 class otexstream;
 
 class FontSpan {
@@ -153,10 +153,6 @@ public:
        ///
        void addChangesToToc(DocIterator const & cdit, Buffer const & buf,
                             bool output_active, TocBackend & backend) const;
-       /// set the buffer flag if there are changes in the paragraph
-       void addChangesToBuffer(Buffer const & buf) const;
-       ///
-       bool isChangeUpdateRequired() const;
        ///
        Language const * getParLanguage(BufferParams const &) const;
        ///
@@ -207,7 +203,7 @@ public:
        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;
+       pos_type firstWordLyXHTML(XMLStream & xs, OutputParams const & runparams) const;
 
        /// Writes to stream the docbook representation
        void simpleDocBookOnePar(Buffer const & buf,
@@ -215,10 +211,11 @@ 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,
+                                XMLStream & xs,
                                 OutputParams const & runparams,
                                 Font const & outerfont,
                                 bool start_paragraph = true,
@@ -263,10 +260,16 @@ public:
        /// look up change at given pos
        Change const & lookupChange(pos_type pos) const;
 
-       /// is there a change within the given range ?
+       /// is there a change within the given range (does not
+       /// check contained paragraphs)
        bool isChanged(pos_type start, pos_type end) const;
+       /// Are there insets containing changes in the range?
+       bool hasChangedInsets(pos_type start, pos_type end) const;
        /// is there an unchanged char at the given pos ?
        bool isChanged(pos_type pos) const;
+       /// is there a change in the paragraph ?
+       bool isChanged() const;
+
        /// is there an insertion at the given pos ?
        bool isInserted(pos_type pos) const;
        /// is there a deletion at the given pos ?
@@ -277,6 +280,8 @@ public:
        /// will the paragraph be physically merged with the next
        /// one if the imaginary end-of-par character is logically deleted?
        bool isMergedOnEndOfParDeletion(bool trackChanges) const;
+       /// Return Change form of paragraph break
+       Change parEndChange() const;
 
        /// set change for the entire par
        void setChange(Change const & change);
@@ -310,7 +315,9 @@ public:
        /// Set label width string.
        void setLabelWidthString(docstring const & s);
        /// Actual paragraph alignment used
-       LyXAlignment getAlign() const;
+       LyXAlignment getAlign(BufferParams const &) const;
+       /// Default paragraph alignment as determined by layout
+       LyXAlignment getDefaultAlign(BufferParams const &) const;
        /// The nesting depth of a paragraph
        depth_type getDepth() const;
        /// The maximal possible depth of a paragraph after this one
@@ -335,12 +342,8 @@ public:
        ///
        Font const & getFirstFontSettings(BufferParams const &) const;
 
-       /** Get fully instantiated font. If pos == -1, use the layout
-           font attached to this paragraph.
-           If pos == -2, use the label font of the layout attached here.
-           In all cases, the font is instantiated, i.e. does not have any
-           attributes with values FONT_INHERIT, FONT_IGNORE or
-           FONT_TOGGLE.
+       /** Get fully instantiated font, i.e., one that does not have any
+           attributes with values FONT_INHERIT, FONT_IGNORE or FONT_TOGGLE.
        */
        Font const getFont(BufferParams const &, pos_type pos,
                              Font const & outerfont) const;
@@ -358,7 +361,8 @@ public:
        ///
        char_type getChar(pos_type pos) const;
        /// Get the char, but mirror all bracket characters if it is right-to-left
-       char_type getUChar(BufferParams const &, pos_type pos) const;
+       char_type getUChar(BufferParams const &, OutputParams const &,
+                          pos_type pos) const;
        /// pos <= size() (there is a dummy font change at the end of each par)
        void setFont(pos_type pos, Font const & font);
        ///
@@ -416,7 +420,7 @@ public:
        bool isLineSeparator(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;
+       bool isWordSeparator(pos_type pos, bool const ignore_deleted = false) 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
@@ -424,6 +428,9 @@ public:
        /// True if the element at this point is a hard hyphen or a apostrophe
        /// If it is enclosed by spaces return false
        bool isHardHyphenOrApostrophe(pos_type pos) const;
+       /// Return true if this paragraph has verbatim content that needs to be
+       /// protected by \cprotect
+       bool needsCProtection(bool const fragile = false) 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)
@@ -470,7 +477,7 @@ public:
                bool del = true) const;
 
        void locateWord(pos_type & from, pos_type & to,
-               word_location const loc) const;
+               word_location const loc, bool const ignore_deleted = false) const;
        ///
        void updateWords();