]> git.lyx.org Git - lyx.git/blobdiff - src/DocIterator.h
Add lfuns doxy.
[lyx.git] / src / DocIterator.h
index fc6125186c460b87f2b8c8e18b49ff31cf9fb528..e36092af748f1697f4b823d9b217c05022fc517d 100644 (file)
@@ -159,9 +159,14 @@ public:
        //
        /**
         * move on one logical position, descend into nested insets
-        * skip collapsed insets if \p ignorecollapsed is true
+        * including collapsed insets
         */
-       void forwardPos(bool ignorecollapsed = false);
+       void forwardPos();
+       /**
+        * move on one logical position, descend into nested insets
+        * skip collapsed insets
+        */
+       void forwardPosIgnoreCollapsed();
        /// move on one physical character or inset
        void forwardChar();
        /// move on one paragraph
@@ -262,6 +267,32 @@ inline bool operator!=(DocIterator const & di1, DocIterator const & di2)
 }
 
 
+inline
+bool operator<(DocIterator const & p, DocIterator const & q)
+{
+       size_t depth = std::min(p.depth(), q.depth());
+       for (size_t i = 0 ; i < depth ; ++i) {
+               if (p[i] != q[i])
+                       return p[i] < q[i];
+       }
+       return p.depth() < q.depth();
+}
+
+
+inline 
+bool operator>(DocIterator const & p, DocIterator const & q)
+{
+       return q < p;
+}
+
+
+inline 
+bool operator<=(DocIterator const & p, DocIterator const & q)
+{
+       return !(q < p);
+}
+
+
 // The difference to a ('non stable') DocIterator is the removed
 // (overwritten by 0...) part of the CursorSlice data items. So this thing
 // is suitable for external storage, but not for iteration as such.