]> git.lyx.org Git - lyx.git/blobdiff - src/dociterator.h
* src/frontends/qt4/QTocDialog.C (updateGui):
[lyx.git] / src / dociterator.h
index c69c703c515893ecdfd670f09a529558cb86ee67..6bca4d3e185f0fa3e7e2107525f7ba4bea9c57f5 100644 (file)
 #include <vector>
 #include <iosfwd>
 
+
+namespace lyx {
+
 class LyXText;
 class MathAtom;
 class Paragraph;
-class Row;
-
 
 
 // only needed for gcc 2.95, remove when support terminated
@@ -39,10 +40,6 @@ class DocIterator // : public std::vector<CursorSlice>
 public:
        /// type for cell number in inset
        typedef CursorSlice::idx_type idx_type;
-       /// type for paragraph numbers positions within a cell
-       typedef CursorSlice::pit_type pit_type;
-       /// type for cursor positions within a cell
-       typedef CursorSlice::pos_type pos_type;
        /// type for row indices
        typedef CursorSlice::row_type row_type;
        /// type for col indices
@@ -156,14 +153,12 @@ public:
        Paragraph & paragraph();
        /// the paragraph we're in
        Paragraph const & paragraph() const;
-       /// the row in the paragraph we're in
-       Row & textRow();
-       /// the row in the paragraph we're in
-       Row const & textRow() const;
        ///
        LyXText * text();
        ///
        LyXText const * text() const;
+       /// the containing inset or the cell, respectively
+       InsetBase * realInset() const;
        ///
        InsetBase * innerInsetOfType(int code) const;
        ///
@@ -176,8 +171,11 @@ public:
        //
        /// move on one logical position, do not descend into nested insets
        void forwardPosNoDescend();
-       /// move on one logical position, descend into nested insets
-       void forwardPos();
+       /**
+        * move on one logical position, descend into nested insets
+        * skip collapsed insets if \p ignorecollapsed is true
+        */
+       void forwardPos(bool ignorecollapsed = false);
        /// move on one physical character or inset
        void forwardChar();
        /// move on one paragraph
@@ -264,7 +262,7 @@ bool operator!=(DocIterator const & di1, DocIterator const & di2)
 
 
 // The difference to a ('non stable') DocIterator is the removed
-// (overwritte by 0...) part of the CursorSlice data items. So this thing
+// (overwritten by 0...) part of the CursorSlice data items. So this thing
 // is suitable for external storage, but not for iteration as such.
 
 class StableDocIterator {
@@ -277,8 +275,6 @@ public:
        DocIterator asDocIterator(InsetBase * start) const;
        ///
        size_t size() const { return data_.size(); }
-       /// type for cursor positions within a cell
-       typedef CursorSlice::pos_type pos_type;
        ///  return the position within the paragraph
        pos_type pos() const { return data_.back().pos(); }
        ///  return the position within the paragraph
@@ -296,4 +292,7 @@ private:
        std::vector<CursorSlice> data_;
 };
 
+
+} // namespace lyx
+
 #endif