X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FRow.h;h=49513d32b970b63124ce6a3c5290283ab145b317;hb=08aef452e7d3d5901e42b5e6a38ecaf18cd38529;hp=695c81a95eef5fe71ca3e800a13ee0345bb3f988;hpb=57c3a94730ed587ac8261bd67532d2ae08c98ced;p=lyx.git diff --git a/src/Row.h b/src/Row.h index 695c81a95e..49513d32b9 100644 --- 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 + 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 + 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_; };