4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
11 * Full author contact details are available in file CREDITS.
17 #include "support/types.h"
28 class ParagraphMetrics;
32 class ViewMetricsInfo;
34 namespace frontend { class Painter; }
37 * A class used for painting an individual row of text.
38 * FIXME: get rid of that class.
42 /// initialise and run painter
43 RowPainter(PainterInfo & pi, Text const & text,
44 pit_type pit, Row const & row, Bidi & bidi, int x, int y);
46 /// paint various parts
47 /// FIXME: transfer to TextMetrics
50 void paintChangeBar();
54 void paintOnlyInsets();
57 void paintForeignMark(double orig_x, Font const & font, int desc = 0);
58 void paintHebrewComposeChar(pos_type & vpos, Font const & font);
59 void paintArabicComposeChar(pos_type & vpos, Font const & font);
60 void paintChars(pos_type & vpos, Font const & font,
61 bool hebrew, bool arabic);
62 int paintAppendixStart(int y);
63 void paintFromPos(pos_type & vpos);
64 void paintInset(Inset const * inset, pos_type const pos);
65 void paintHfill(pos_type const pos, pos_type const body_pos);
67 /// return left margin
68 int leftMargin() const;
70 /// return the label font for this row
71 Font const getLabelFont() const;
73 /// contains painting related information.
78 TextMetrics & text_metrics_;
79 ParagraphList const & pars_;
86 Paragraph const & par_;
87 ParagraphMetrics const & pm_;
89 /// bidi cache, comes from outside the rowpainter because
90 /// rowpainters are normally created in a for loop and there only
91 /// one of them is active at a time.
94 /// is row erased? (change tracking)
99 int const yo_; // current baseline
106 #endif // ROWPAINTER_H