]> git.lyx.org Git - features.git/blobdiff - src/Changes.h
InsetIndex: hide printTree behind a LYX_INSET_INDEX_DEBUG flag
[features.git] / src / Changes.h
index 1d55b03b548acd191cb36d77d764bc16df0bc130..d53887556d5a32ffb9fc352ed8f7d3c03e3a32f3 100644 (file)
 #ifndef CHANGES_H
 #define CHANGES_H
 
-#include "Color.h"
-
 #include "support/strfwd.h"
 #include "support/types.h"
 #include "support/lyxtime.h"
 
-#include "texstream.h"
-
 #include <vector>
 
 
@@ -30,8 +26,14 @@ namespace lyx {
 
 class AuthorList;
 class Buffer;
+class Color;
 class DocIterator;
+class FontInfo;
 class OutputParams;
+class otexstream;
+class PainterInfo;
+class TocBackend;
+
 
 class Change {
 public:
@@ -64,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;
@@ -78,8 +94,6 @@ 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
@@ -87,11 +101,11 @@ public:
 
        /// erase the entry at pos and adjust all range bounds past it
        /// (assumes that a character was deleted at pos)
-       void erase(lyx::pos_type pos);
+       void erase(pos_type pos);
 
        /// insert a new entry at pos and adjust all range bounds past it
        /// (assumes that a character was inserted at pos)
-       void insert(Change const & change, lyx::pos_type pos);
+       void insert(Change const & change, pos_type pos);
 
        ///
 
@@ -117,16 +131,11 @@ public:
                int & column, Change const & old, Change const & change);
 
        ///
-       void checkAuthors(AuthorList const & authorList);
+       void checkAuthors(AuthorList const & authorList) const;
 
        ///
        void addToToc(DocIterator const & cdit, Buffer const & buffer,
-               bool output_active) const;
-
-       ///
-       void updateBuffer(Buffer const & buf);
-       ///
-       bool isUpdateRequired() const { return is_update_required_; }
+                     bool output_active, TocBackend & backend) const;
 
 private:
        class Range {
@@ -170,10 +179,6 @@ 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_;
 };