]> git.lyx.org Git - lyx.git/blobdiff - src/DocIterator.h
cleanup and reorder initialisation code of GuiView and GuiToolbars. Move some things...
[lyx.git] / src / DocIterator.h
index c2ad4082945d2785c5de21a6a97d884c77caba18..0531a23c6870bc07aca03a08621011673751c175 100644 (file)
@@ -15,7 +15,6 @@
 #include "CursorSlice.h"
 
 #include <vector>
-#include <iosfwd>
 
 
 namespace lyx {
@@ -25,14 +24,6 @@ class MathAtom;
 class Paragraph;
 
 
-// only needed for gcc 2.95, remove when support terminated
-template <typename A, typename B>
-bool ptr_cmp(A const * a, B const * b)
-{
-       return a == b;
-}
-
-
 // The public inheritance should go in favour of a suitable data member
 // (or maybe private inheritance) at some point of time.
 class DocIterator // : public std::vector<CursorSlice>
@@ -148,9 +139,11 @@ public:
        /// \warning only works within text!
        Paragraph & paragraph() const;
        /// the paragraph we're in in any case.
-       /// This method will give the containing paragraph if
-       /// in not in text mode (ex: in mathed).
+       /// This method will give the containing paragraph even
+       /// if not in text mode (ex: in mathed).
        Paragraph & innerParagraph() const;
+       /// return the inner text slice.
+       CursorSlice const & innerTextSlice() const;
        ///
        Text * text() const;
        /// the containing inset or the cell, respectively
@@ -210,6 +203,19 @@ public:
        /// \return true if the DocIterator was fixed.
        bool fixIfBroken();
 
+       /// find index of CursorSlice with &cell() == &cell (or -1 if not found)
+       idx_type find(MathData const & cell) const;
+       /// find index of CursorSlice with inset() == inset (or -1 of not found)
+       idx_type find(InsetMath const * inset) const;
+       /// cut off CursorSlices with index > above and store cut off slices in cut
+       void cutOff(idx_type above, std::vector<CursorSlice> & cut);
+       /// cut off CursorSlices with index > above
+       void cutOff(idx_type above);
+       /// push CursorSlices on top
+       void append(std::vector<CursorSlice> const & x);
+       /// push one CursorSlice on top and set its index and position
+       void append(idx_type idx, pos_type pos);
+
 private:
        /**
         * When the cursor position is i, is the cursor after the i-th char