+// -*- C++ -*-
#ifndef MATH_ITERATOR_H
#define MATH_ITERATOR_H
class MathIterator {
public:
/// default constructor, used for end of range
- MathIterator();
- /// start with given formula
+ //MathIterator();
+ /// start with given inset
explicit MathIterator(MathInset * p);
/// start with given position
- explicit MathIterator(MathCursor::cursor_type const & cursor);
+ //explicit MathIterator(MathCursor::cursor_type const & cursor);
///
MathCursorPos const & operator*() const;
///
MathCursorPos const & operator->() const;
- ///
+ /// move on one step
void operator++();
+ /// move on several steps
+ void jump(MathInset::difference_type);
/// read access to top most item
MathCursorPos const & position() const;
/// write access to top most item
/// read access to full path
MathCursor::cursor_type const & cursor() const;
/// read access to top most inset
- MathInset * par() const;
-
-private:
- /// write access to top most item
+ MathInset const * par() const;
+ /// read access to top most inset
+ MathInset * par();
+ /// helper for iend
+ void goEnd();
+ /// read access to top most item
+ MathArray const & cell() const;
+
+private:
+ /// read access to top most item
MathXArray const & xcell() const;
/// write access to top most item
MathInset * nextInset() const;
///
bool operator!=(MathIterator const &, MathIterator const &);
+///
+MathIterator ibegin(MathInset * p);
+///
+MathIterator iend(MathInset * p);
#endif