]> git.lyx.org Git - lyx.git/blobdiff - src/Paragraph.h
Add \makeat switches to babel settings if necessary.
[lyx.git] / src / Paragraph.h
index 0e4372593adb38916387c26ecdc303b9cfb417ee..f5d6a23b26f9b18f20f47542ab3a6c2cdf870c62 100644 (file)
@@ -55,6 +55,7 @@ class TexRow;
 class Toc;
 class WordLangTuple;
 class XHTMLStream;
+class otexstream;
 
 class FontSpan {
 public:
@@ -76,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;
@@ -168,9 +191,9 @@ public:
        void validate(LaTeXFeatures &) const;
 
        /// \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, bool force = false) const;
+       void latex(BufferParams const &, Font const & outerfont, otexstream &,
+                  OutputParams const &, int start_pos = 0, int end_pos = -1,
+                  bool force = false) const;
 
        /// Can we drop the standard paragraph wrapper?
        bool emptyTag() const;
@@ -213,6 +236,8 @@ public:
        ///
        bool usePlainLayout() const;
        ///
+       bool isPassThru() const;
+       ///
        pos_type size() const;
        ///
        bool empty() const;
@@ -395,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)
@@ -453,8 +481,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.