]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph_pimpl.h
Restore the version number position on the splash screen
[lyx.git] / src / paragraph_pimpl.h
index 010196b8d0acf10d343a705fefbc8ba4ac2b11ea..df899b695db235082778e9e99b41d4ebadd16959 100644 (file)
@@ -26,6 +26,7 @@
 
 namespace lyx {
 
+class Encoding;
 class LyXLayout;
 
 
@@ -35,41 +36,36 @@ 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);
-       /// are we tracking changes ?
-       bool tracking() const { return changes_.get(); }
+       /// 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;
        ///
-       void setChar(pos_type pos, value_type c);
-       ///
        void insertChar(pos_type pos, value_type c, Change const & change);
        ///
        void insertInset(pos_type pos, InsetBase * inset, Change const & change);
-       /// definite erase
-       void erase(pos_type pos);
-       /// erase the given position. Returns true if it was actually erased
-       bool erase(pos_type pos, bool trackChanges);
-       /// erase the given range
-       int erase(pos_type start, pos_type end, bool trackChanges);
+       /// (logically) erase the char at pos; return true if it was actually erased
+       bool eraseChar(pos_type pos, 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;
 
@@ -128,17 +124,24 @@ 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 &,
-                                  LyXFont & font, LyXFont & running_font,
+                                  Encoding const &, odocstream &,
+                                  TexRow & texrow, OutputParams const &,
+                                  LyXFont & running_font,
                                   LyXFont & basefont,
                                   LyXFont const & outerfont,
                                   bool & open_font,
@@ -164,8 +167,8 @@ private:
        /// match a string against a particular point in the paragraph
        bool isTextAt(std::string const & str, pos_type pos) const;
 
-       /// for recording and looking up changes in revision tracking mode
-       boost::scoped_ptr<Changes> changes_;
+       /// for recording and looking up changes
+       Changes changes_;
 
        /// Who owns us?
        Paragraph * owner_;