]> git.lyx.org Git - lyx.git/blobdiff - src/Row.h
tex2lyx: improve module support
[lyx.git] / src / Row.h
index a2e77fbfb4b61b6336aa09c0c04eb4c9bb748059..01c62cf266a30064a62f20b4bca8a25c2d73185c 100644 (file)
--- a/src/Row.h
+++ b/src/Row.h
@@ -136,24 +136,45 @@ public:
 
        ///
        Row();
+       /**
+        * Helper function: set variable \c var to value \c val, and mark
+        * row as changed is the values were different. This is intended
+        * for use when changing members of the row object.
+        */
+       template<class T1, class T2>
+       void change(T1 & var, T2 const val) {
+               if (var != val)
+                       changed(true);
+               var = val;
+       }
+       /**
+        * Helper function: set variable \c var to value \c val, and mark
+        * row as changed is the values were different. This is intended
+        * for use when changing members of the row object.
+        * This is the const version, useful for mutable members.
+        */
+       template<class T1, class T2>
+       void change(T1 & var, T2 const val) const {
+               if (var != val)
+                       changed(true);
+               var = val;
+       }
        ///
        bool changed() const { return changed_; }
        ///
-       void setChanged(bool c) { changed_ = c; }
-       ///
-       void setCrc(size_type crc) const;
-       /// Set the selection begin and end.
-       /**
-         * This is const because we update the selection status only at draw()
-         * time.
-         */
-       void setSelection(pos_type sel_beg, pos_type sel_end) const;
+       void changed(bool c) const { changed_ = c; }
        ///
        bool selection() const;
-       /// Set the selection begin and end and whether the left and/or right
-       /// margins are selected.
+       /**
+        * Set the selection begin and end and whether the left and/or
+        * right margins are selected.
+        * This is const because we update the selection status only at
+        * draw() time.
+        */
        void setSelectionAndMargins(DocIterator const & beg,
                DocIterator const & end) const;
+       /// no selection on this row.
+       void clearSelectionAndMargins() const;
 
        ///
        void pit(pit_type p) { pit_ = p; }
@@ -177,9 +198,9 @@ public:
        bool flushed() const { return flushed_; }
 
        ///
-       Dimension const & dimension() const { return dim_; }
+       Dimension const & dim() const { return dim_; }
        ///
-       Dimension & dimension() { return dim_; }
+       Dimension & dim() { return dim_; }
        ///
        int height() const { return dim_.height(); }
        /// The width of the row, including the left margin, but not the right one.
@@ -300,8 +321,10 @@ private:
          * \param beg
          * \param end
          */
-       bool isMarginSelected(bool left_margin, DocIterator const & beg,
+       bool isMarginSelected(bool left, DocIterator const & beg,
                DocIterator const & end) const;
+       /// Set the selection begin and end.
+       void setSelection(pos_type sel_beg, pos_type sel_end) const;
 
        /**
         * Returns true if a char or string with font \c f and change
@@ -315,8 +338,6 @@ private:
 
        /// has the Row appearance changed since last drawing?
        mutable bool changed_;
-       /// CRC of row contents.
-       mutable size_type crc_;
        /// Index of the paragraph that contains this row
        pit_type pit_;
        /// first pos covered by this row