]> git.lyx.org Git - lyx.git/blobdiff - src/FontIterator.C
* src/tabular.[Ch]: simplify plaintext methods, because there
[lyx.git] / src / FontIterator.C
index 17cb08763a2a8b676b234bd26cc4e1d2f1d1e2fb..ab97a6f384c5c862bc13f0a6b224f3cf7585bc97 100644 (file)
 
 #include "FontIterator.h"
 
+#include "buffer.h"
 #include "lyxtext.h"
 #include "paragraph.h"
 
 
-FontIterator::FontIterator(LyXText const & text, lyx::pit_type pit,
-                          lyx::pos_type pos)
-       : text_(text), pit_(pit), pos_(pos),
-         font_(text.getFont(text.getPar(pit), pos)),
-         endspan_(text.getPar(pit).getEndPosOfFontSpan(pos)),
-         bodypos_(text.getPar(pit).beginOfBody())
+namespace lyx {
+
+
+FontIterator::FontIterator(Buffer const & buffer, LyXText const & text,
+               Paragraph const & par, pos_type pos)
+       : buffer_(buffer), text_(text), par_(par), pos_(pos),
+         font_(text.getFont(buffer, par, pos)),
+         endspan_(par.fontSpan(pos).last),
+         bodypos_(par.beginOfBody())
 {}
 
 
-LyXFont FontIterator::operator*() const
+LyXFont const & FontIterator::operator*() const
 {
        return font_;
 }
@@ -43,8 +47,11 @@ FontIterator & FontIterator::operator++()
 {
        ++pos_;
        if (pos_ > endspan_ || pos_ == bodypos_) {
-               font_ = text_.getFont(text_.getPar(pit_), pos_);
-               endspan_ = text_.getPar(pit_).getEndPosOfFontSpan(pos_);
+               font_ = text_.getFont(buffer_, par_, pos_);
+               endspan_ = par_.fontSpan(pos_).last;
        }
        return *this;
 }
+
+
+} // namespace lyx