X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FChanges.h;h=96383967b96f89fb44b7db096e1804f8c091183c;hb=4b64aaf4ce026aacce02cfda58dcb1cd954f4adb;hp=9219edc6539dcd26c6588f916ffa1618671d8267;hpb=86994bf75320524ec656fd70950633c83d445a6c;p=lyx.git diff --git a/src/Changes.h b/src/Changes.h index 9219edc653..96383967b9 100644 --- a/src/Changes.h +++ b/src/Changes.h @@ -17,11 +17,12 @@ #include "Color.h" -#include "support/docstream.h" #include "support/strfwd.h" #include "support/types.h" #include "support/lyxtime.h" +#include "texstream.h" + #include @@ -31,6 +32,8 @@ class AuthorList; class Buffer; class DocIterator; class OutputParams; +class PainterInfo; +class FontInfo; class Change { public: @@ -63,6 +66,20 @@ public: /// Is this change made by the current author ? bool currentAuthor() const { return author == 0; } + /// Paint under- or strike-through line + /// + /// Text : underline or strike through + /// \param x1 begin + /// \param x2 end + /// \param y baseline + void paintCue(PainterInfo & pi, double const x1, double const y, + double const x2, FontInfo const & font) const; + /// Box : line below or diagonal + /// \param x1,y1 top-left corner + /// \param x2,y2 bottom-right corner + void paintCue(PainterInfo & pi, double const x1, double const y1, + double const x2, double const y2) const; + Type type; int author; @@ -77,6 +94,8 @@ class BufferParams; class Changes { public: + Changes() : is_update_required_(false) {} + /// set the pos to the given change void set(Change const & change, pos_type pos); /// set the range (excluding end) to the given change @@ -97,6 +116,8 @@ public: /// return true if there is a change in the given range (excluding end) bool isChanged(pos_type start, pos_type end) const; + /// + bool isChanged() const; /// return true if the whole range is deleted bool isDeleted(pos_type start, pos_type end) const; @@ -118,6 +139,11 @@ public: void addToToc(DocIterator const & cdit, Buffer const & buffer, bool output_active) const; + /// + void updateBuffer(Buffer const & buf); + /// + bool isUpdateRequired() const { return is_update_required_; } + private: class Range { public: @@ -160,6 +186,10 @@ private: /// table of changes, every row a change and range descriptor ChangeTable table_; + + /// signals that the buffer's flag tracked_changes_present_ needs to be + /// recalculated + bool is_update_required_; };