]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph_pimpl.h
add config.h
[lyx.git] / src / paragraph_pimpl.h
index 98d588a67c21b410cc98a14c294407843fe40916..3b8e0b0fab6f61c497caa39f47298994a20b69a5 100644 (file)
@@ -26,6 +26,7 @@
 
 namespace lyx {
 
+class Encoding;
 class LyXLayout;
 
 
@@ -35,24 +36,25 @@ public:
        Pimpl(Paragraph * owner);
        /// "Copy constructor"
        Pimpl(Pimpl const &, Paragraph * owner);
-       ///
-       void setContentsFromPar(Paragraph const & par);
 
        //
        // Change tracking
        //
        /// look up change at given pos
-       Change const lookupChange(pos_type pos) const;
+       Change const lookupChange(pos_type pos) const;
        /// is there a change within the given range ?
        bool isChanged(pos_type start, pos_type end) const;
-        /// set change for the entire par
-        void setChange(Change const & change);
+       /// 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;
+       /// set change for the entire par
+       void setChange(Change const & change);
        /// set change at given pos
        void setChange(pos_type pos, Change const & change);
-       /// accept change
-       void acceptChange(pos_type start, pos_type end);
-       /// reject change
-       void rejectChange(pos_type start, pos_type end);
+       /// accept changes within the given range
+       void acceptChanges(BufferParams const & bparams, pos_type start, pos_type end);
+       /// reject changes within the given range
+       void rejectChanges(BufferParams const & bparams, pos_type start, pos_type end);
 
        ///
        value_type getChar(pos_type pos) const;
@@ -60,12 +62,10 @@ public:
        void insertChar(pos_type pos, value_type c, Change const & change);
        ///
        void insertInset(pos_type pos, InsetBase * inset, Change const & change);
-       /// definite erase
-       void eraseChar(pos_type pos);
-       /// erase the given position. Returns true if it was actually erased
+       /// (logically) erase the char at pos; return true if it was actually erased
        bool eraseChar(pos_type pos, bool trackChanges);
-       /// erase the given range
-       int erase(pos_type start, pos_type end, bool trackChanges);
+       /// (logically) erase the given range; return the number of chars actually erased
+       int eraseChars(pos_type start, pos_type end, bool trackChanges);
        ///
        InsetBase * inset_owner;
 
@@ -124,16 +124,23 @@ public:
        ///
        FontList fontlist;
 
-       ///
-       void simpleTeXBlanks(odocstream &, TexRow & texrow,
-                            pos_type const i,
+       /// Output the surrogate pair formed by \p c and \p next to \p os.
+       /// \return the number of characters written.
+       int latexSurrogatePair(odocstream & os, value_type c, value_type next,
+                              Encoding const &);
+       /// Output a space in appropriate formatting (or a surrogate pair
+       /// if the next character is a combining character).
+       /// \return whether a surrogate pair was output.
+       bool simpleTeXBlanks(BufferParams const &, Encoding const &,
+                            odocstream &, TexRow & texrow,
+                            pos_type & i,
                             unsigned int & column,
                             LyXFont const & font,
                             LyXLayout const & style);
        ///
        void simpleTeXSpecialChars(Buffer const &, BufferParams const &,
-                                  odocstream &, TexRow & texrow,
-                                  OutputParams const &,
+                                  Encoding const &, odocstream &,
+                                  TexRow & texrow, OutputParams const &,
                                   LyXFont & font, LyXFont & running_font,
                                   LyXFont & basefont,
                                   LyXFont const & outerfont,