+ /// initialise tracking for this par
+ void trackChanges(Change::Type = Change::UNCHANGED);
+
+ /// stop tracking
+ void untrackChanges();
+
+ /// set entire paragraph to new text for change tracking
+ void cleanChanges();
+
+ /// look up change type at given pos
+ Change::Type lookupChange(lyx::pos_type pos) const;
+
+ /// look up change at given pos
+ Change const lookupChangeFull(lyx::pos_type pos) const;
+
+ /// is there a change within the given range ?
+ 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;
+
+ /// accept change
+ void acceptChange(lyx::pos_type start, lyx::pos_type end);
+
+ /// reject change
+ void rejectChange(lyx::pos_type start, lyx::pos_type end);
+
+ /// mark whole par as erased
+ void markErased();
+