]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.h
Do not check for LaTeX fonts if we use nonTeXFont
[lyx.git] / src / Paragraph.h
index ed8d7f4027e3edc641b1aaea0c6263b38db54391..0ea959fd544804779b3589392da91b8bb86109ea 100644 (file)
@@ -77,12 +77,34 @@ public:
        {
                return first == s.first && last == s.last;
        }
-       
+
        inline bool inside(pos_type p) const
        {
                return first <= p && p <= last;
        }
 
+       inline size_t size() const
+       {
+               return empty() ? 0 : last - first;
+       }
+       
+
+       inline FontSpan intersect(FontSpan const & f) const
+       {
+               FontSpan result = FontSpan();
+               if (inside(f.first))
+                       result.first = f.first;
+               else if (f.inside(first))
+                       result.first = first;
+               else
+                       return result;
+               if (inside(f.last))
+                       result.last = f.last;
+               else if (f.inside(last))
+                       result.last = last;
+               return result;
+       }
+       
        inline bool empty() const
        {
                return first > last;
@@ -170,8 +192,8 @@ public:
 
        /// \param force means: output even if layout.inpreamble is true.
        void latex(BufferParams const &, Font const & outerfont, otexstream &,
-                  TexRow & texrow, OutputParams const &,
-                  int start_pos = 0, int end_pos = -1, bool force = false) const;
+                  OutputParams const &, int start_pos = 0, int end_pos = -1,
+                  bool force = false) const;
 
        /// Can we drop the standard paragraph wrapper?
        bool emptyTag() const;
@@ -398,6 +420,9 @@ public:
        bool isChar(pos_type pos) const;
        /// True if the element at this point is a space
        bool isSpace(pos_type pos) const;
+       /// 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;
 
        /// returns true if at least one line break or line separator has been deleted
        /// at the beginning of the paragraph (either physically or logically)
@@ -415,6 +440,8 @@ public:
        ///
        ParagraphParameters const & params() const;
 
+       /// Check whether a call to fixBiblio is needed.
+       bool brokenBiblio() const;
        /// Check if we are in a Biblio environment and insert or
        /// delete InsetBibitems as necessary.
        /// \retval int 1, if we had to add an inset, in which case
@@ -422,7 +449,7 @@ public:
        /// an inset, in which case pos is the position from which the inset
        /// was deleted, and the cursor will need to be moved back one if it
        /// was previously past that position. Return 0 otherwise.
-       int checkBiblio(Buffer const & buffer);
+       int fixBiblio(Buffer const & buffer);
 
        /// For each author, set 'used' to true if there is a change
        /// by this author in the paragraph.
@@ -456,8 +483,10 @@ public:
                bool check_learned = false) const;
 
        /// Spell checker status at position \p pos.
-       /// \return true if pointed position is misspelled.
-       bool isMisspelled(pos_type pos) const;
+       /// If \p check_boundary is true the status of position immediately
+       /// before \p pos is tested too if it is at word boundary.
+       /// \return true if one of the tested positions is misspelled.
+       bool isMisspelled(pos_type pos, bool check_boundary = false) const;
 
        /// \return true if both positions are inside the same
        /// spell range - i.e. the same word.