]> git.lyx.org Git - lyx.git/blobdiff - src/Row.h
Disambiguate dialog buttons
[lyx.git] / src / Row.h
index 695c81a95eef5fe71ca3e800a13ee0345bb3f988..49513d32b970b63124ce6a3c5290283ab145b317 100644 (file)
--- a/src/Row.h
+++ b/src/Row.h
@@ -136,12 +136,33 @@ 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;
+       void changed(bool c) const { changed_ = c; }
        /// Set the selection begin and end.
        /**
          * This is const because we update the selection status only at draw()
@@ -266,6 +287,13 @@ public:
        void reverseRTL(bool rtl_par);
        ///
        bool isRTL() const { return rtl_; }
+       ///
+       bool needsChangeBar() const { return changebar_; }
+       ///
+       void needsChangeBar(bool ncb) { changebar_ = ncb; }
+
+       /// Find row element that contains \c pos, and compute x offset.
+       const_iterator const findElement(pos_type pos, bool boundary, double & x) const;
 
        friend std::ostream & operator<<(std::ostream & os, Row const & row);
 
@@ -308,8 +336,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
@@ -324,6 +350,8 @@ private:
        Dimension dim_;
        /// true when this row lives in a right-to-left paragraph
        bool rtl_;
+       /// true when a changebar should be drawn in the margin
+       bool changebar_;
 };