+++ /dev/null
-/**
- * \file src/FontIterator.cpp
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Alfredo Braunstein
- *
- * Full author contact details are available in file CREDITS.
- *
- */
-
-#include <config.h>
-
-#include "FontIterator.h"
-
-#include "TextMetrics.h"
-#include "Paragraph.h"
-
-
-namespace lyx {
-
-
-FontIterator::FontIterator(TextMetrics const & tm,
- Paragraph const & par, pit_type pit, pos_type pos)
- : tm_(tm), par_(par), pit_(pit), pos_(pos),
- font_(tm.displayFont(pit, pos)),
- endspan_(par.fontSpan(pos).last),
- bodypos_(par.beginOfBody())
-{}
-
-
-Font const & FontIterator::operator*() const
-{
- return font_;
-}
-
-
-Font * FontIterator::operator->()
-{
- return &font_;
-}
-
-
-FontIterator & FontIterator::operator++()
-{
- ++pos_;
- if (pos_ > endspan_ || pos_ == bodypos_) {
- font_ = tm_.displayFont(pit_, pos_);
- endspan_ = par_.fontSpan(pos_).last;
- }
- return *this;
-}
-
-
-} // namespace lyx
+++ /dev/null
-// -*- C++ -*-
-/**
- * \file src/FontIterator.h
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Alfredo Braunstein
- *
- * Full author contact details are available in file CREDITS.
- *
- *
- * Calling Text::getFont is slow. While rebreaking we scan a
- * paragraph from left to right calling getFont for every char. This
- * simple class address this problem by hidding an optimization trick
- * (not mine btw -AB): the font is reused in the whole font span. The
- * class handles transparently the "hidden" (not part of the fontlist)
- * label font (as getFont does).
- */
-
-#ifndef FONTITERATOR_H
-#define FONTITERATOR_H
-
-#include "Font.h"
-
-#include "support/types.h"
-
-
-namespace lyx {
-
-class Paragraph;
-class TextMetrics;
-
-
-class FontIterator
-{
-public:
- ///
- FontIterator(TextMetrics const & tm,
- Paragraph const & par, pit_type pit, pos_type pos);
- ///
- Font const & operator*() const;
- ///
- FontIterator & operator++();
- ///
- Font * operator->();
-
-private:
- ///
- TextMetrics const & tm_;
- ///
- Paragraph const & par_;
- ///
- pit_type pit_;
- ///
- pos_type pos_;
- ///
- Font font_;
- ///
- pos_type endspan_;
- ///
- pos_type bodypos_;
-};
-
-
-} // namespace lyx
-
-#endif // FONTITERATOR_H
Floating.cpp \
FloatList.cpp \
FontInfo.cpp \
- FontIterator.cpp \
FontList.cpp \
Font.cpp \
Format.cpp \
Font.h \
FontEnums.h \
FontInfo.h \
- FontIterator.h \
FontList.h \
Format.h \
FuncCode.h \
#include "ErrorList.h"
#include "FuncRequest.h"
#include "factory.h"
-#include "FontIterator.h"
#include "Language.h"
#include "Length.h"
#include "Lexer.h"
#include "CoordCache.h"
#include "Cursor.h"
#include "CutAndPaste.h"
-#include "FontIterator.h"
#include "FuncRequest.h"
#include "InsetList.h"
#include "Layout.h"
return leftMargin(max_width_, pit);
}
+namespace {
+
+/**
+ * Calling Text::getFont is slow. While rebreaking we scan a
+ * paragraph from left to right calling getFont for every char. This
+ * simple class address this problem by hidding an optimization trick
+ * (not mine btw -AB): the font is reused in the whole font span. The
+ * class handles transparently the "hidden" (not part of the fontlist)
+ * label font (as getFont does).
+ **/
+class FontIterator
+{
+public:
+ ///
+ FontIterator(TextMetrics const & tm,
+ Paragraph const & par, pit_type pit, pos_type pos)
+ : tm_(tm), par_(par), pit_(pit), pos_(pos),
+ font_(tm.displayFont(pit, pos)),
+ endspan_(par.fontSpan(pos).last),
+ bodypos_(par.beginOfBody())
+ {}
+
+ ///
+ Font const & operator*() const { return font_; }
+
+ ///
+ FontIterator & operator++()
+ {
+ ++pos_;
+ if (pos_ > endspan_ || pos_ == bodypos_) {
+ font_ = tm_.displayFont(pit_, pos_);
+ endspan_ = par_.fontSpan(pos_).last;
+ }
+ return *this;
+ }
+
+ ///
+ Font * operator->() { return &font_; }
+
+private:
+ ///
+ TextMetrics const & tm_;
+ ///
+ Paragraph const & par_;
+ ///
+ pit_type pit_;
+ ///
+ pos_type pos_;
+ ///
+ Font font_;
+ ///
+ pos_type endspan_;
+ ///
+ pos_type bodypos_;
+};
+
+} // anon namespace
pit_type TextMetrics::rowBreakPoint(int width, pit_type const pit,
pit_type pos) const