]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph_pimpl.h
Two fixes involving RtL text drawing
[lyx.git] / src / paragraph_pimpl.h
index 1ed47c4f7b9884b74e5063dc2d1c43726b0633b1..ed2e809270980647de46efe745c3d88b8b34b4e6 100644 (file)
 
 class LyXLayout;
 
-struct Paragraph::Pimpl {
+
+class Paragraph::Pimpl {
+public:
        ///
        Pimpl(Paragraph * owner);
-       /// Copy constructor
+       /// "Copy constructor"
        Pimpl(Pimpl const &, Paragraph * owner);
        ///
        void setContentsFromPar(Paragraph const & par);
+
+       //
+       // Change tracking
+       //
        /// set tracking mode
        void trackChanges(Change::Type type = Change::UNCHANGED);
        /// stop tracking
@@ -46,32 +52,25 @@ struct Paragraph::Pimpl {
        bool isChanged(lyx::pos_type start, lyx::pos_type end) const;
        /// is there a non-addition in this range ?
        bool isChangeEdited(lyx::pos_type start, lyx::pos_type end) const;
-
        /// set change at pos
        void setChange(lyx::pos_type pos, Change::Type type);
-
        /// mark as erased
-       void markErased();
-
+       void markErased(bool);
        /// accept change
        void acceptChange(lyx::pos_type start, lyx::pos_type end);
-
        /// reject change
        void rejectChange(lyx::pos_type start, lyx::pos_type end);
-
        /// are we tracking changes ?
-       bool tracking() const {
-               return changes_.get();
-       }
+       bool tracking() const { return changes_.get(); }
 
        ///
        value_type getChar(lyx::pos_type pos) const;
        ///
        void setChar(lyx::pos_type pos, value_type c);
        ///
-       void insertChar(lyx::pos_type pos, value_type c, LyXFont const & font, Change change = Change(Change::INSERTED));
+       void insertChar(lyx::pos_type pos, value_type c, Change change);
        ///
-       void insertInset(lyx::pos_type pos, InsetOld * inset, LyXFont const & font, Change change = Change(Change::INSERTED));
+       void insertInset(lyx::pos_type pos, InsetBase * inset, Change change);
        /// definite erase
        void eraseIntern(lyx::pos_type pos);
        /// erase the given position. Returns true if it was actually erased
@@ -79,7 +78,7 @@ struct Paragraph::Pimpl {
        /// erase the given range
        int erase(lyx::pos_type start, lyx::pos_type end);
        ///
-       UpdatableInset * inset_owner;
+       InsetBase * inset_owner;
 
        /** A font entry covers a range of positions. Notice that the
            entries in the list are inserted in random order.
@@ -92,21 +91,29 @@ struct Paragraph::Pimpl {
            and font_i covers the chars in positions pos_{i-1}+1,...,pos_i
            (font_1 covers the chars 0,...,pos_1) (Dekel)
        */
-       struct FontTable  {
+       class FontTable  {
+       public:
                ///
                FontTable(lyx::pos_type p, LyXFont const & f)
-                       : pos_(p)
-                       {
-                               font_ = container.get(f);
-                       }
+                       : pos_(p), font_(f)
+               {
+#if 0
+                       font_ = container.get(f);
+#endif
+               }
                ///
                lyx::pos_type pos() const { return pos_; }
                ///
                void pos(lyx::pos_type p) { pos_ = p; }
                ///
-               LyXFont const & font() const { return *font_; }
+               LyXFont const & font() const { return font_; }
+#if 0
                ///
                void font(LyXFont const & f) { font_ = container.get(f);}
+#else
+               ///
+               void font(LyXFont const & f) { font_ = f;}
+#endif
        private:
                /// End position of paragraph this font attribute covers
                lyx::pos_type pos_;
@@ -119,16 +126,20 @@ struct Paragraph::Pimpl {
                    The values LyXFont::IGNORE_* and LyXFont::TOGGLE are NOT
                    allowed in these font tables.
                */
+#if 0
                boost::shared_ptr<LyXFont> font_;
                ///
                static ShareContainer<LyXFont> container;
+#else
+               LyXFont font_;
+#endif
        };
        ///
-       friend struct matchFT;
+       friend class matchFT;
        ///
-       struct matchFT {
+       class matchFT {
+       public:
                /// used by lower_bound and upper_bound
-               inline
                int operator()(FontTable const & a, FontTable const & b) const {
                        return a.pos() < b.pos();
                }
@@ -148,7 +159,7 @@ struct Paragraph::Pimpl {
        ///
        void simpleTeXSpecialChars(Buffer const &, BufferParams const &,
                                   std::ostream &, TexRow & texrow,
-                                  LatexRunParams const &,
+                                  OutputParams const &,
                                   LyXFont & font, LyXFont & running_font,
                                   LyXFont & basefont,
                                   LyXFont const & outerfont,