]> git.lyx.org Git - lyx.git/blobdiff - src/Changes.h
define InsetText::insetAllowed properly and rely on it for inset insertion in Text...
[lyx.git] / src / Changes.h
index 8f91407431e79765da73104a89828771dc729c8d..615b1099b1a7e848fd8741762282c7ee103271ca 100644 (file)
@@ -15,6 +15,8 @@
 #ifndef CHANGES_H
 #define CHANGES_H
 
+#include "Color.h"
+
 #include "support/strfwd.h"
 #include "support/types.h"
 #include "support/lyxtime.h"
@@ -25,6 +27,8 @@
 namespace lyx {
 
 class AuthorList;
+class Buffer;
+class DocIterator;
 
 class Change {
 public:
@@ -35,11 +39,25 @@ public:
                DELETED // deleted text
        };
 
-       explicit Change(Type t, int a = 0, time_t ct = current_time())
+       explicit Change(Type t = UNCHANGED, int a = 0, time_t ct = current_time())
                : type(t), author(a), changetime(ct) {}
 
        /// is the change similar to the given change such that both can be merged?
-       bool isSimilarTo(Change const & change);
+       bool isSimilarTo(Change const & change) const;
+       /// The color of this change on screen
+       Color color() const;
+       ///
+       bool changed() const { return type != UNCHANGED; }
+       ///
+       void setUnchanged() { type = UNCHANGED; }
+       ///
+       bool inserted() const { return type == INSERTED; }
+       ///
+       void setInserted() { type = INSERTED; }
+       ///
+       bool deleted() const { return type == DELETED; }
+       ///
+       void setDeleted() { type = DELETED; }
 
        Type type;
 
@@ -76,7 +94,8 @@ public:
        /// return true if there is a change in the given range (excluding end)
        bool isChanged(pos_type start, pos_type end) const;
 
-       ///
+       /// return true if the whole range is deleted
+       bool isFullyDeleted(pos_type const start, pos_type const end) const;            
 
        /// output latex to mark a transition between two change types
        /// returns length of text outputted
@@ -90,6 +109,9 @@ public:
        ///
        void checkAuthors(AuthorList const & authorList);
 
+       ///
+       void addToToc(DocIterator const & cdit, Buffer const & buffer) const;
+
 private:
        class Range {
        public: