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"
27 class ParagraphMetrics;
31 class ViewMetricsInfo;
33 namespace frontend { class Painter; }
36 * A class used for painting an individual row of text.
37 * FIXME: get rid of that class.
41 /// initialise and run painter
42 RowPainter(PainterInfo & pi, Text const & text,
43 pit_type pit, Row const & row, Bidi & bidi, int x, int y);
45 /// paint various parts
46 /// FIXME: transfer to TextMetrics
49 void paintChangeBar();
55 void paintForeignMark(double orig_x, Font const & font, int desc = 0);
56 void paintHebrewComposeChar(pos_type & vpos, Font const & font);
57 void paintArabicComposeChar(pos_type & vpos, Font const & font);
58 void paintChars(pos_type & vpos, Font const & font,
59 bool hebrew, bool arabic);
60 int paintAppendixStart(int y);
61 void paintFromPos(pos_type & vpos);
62 void paintInset(pos_type const pos, Font const & font);
64 /// return left margin
65 int leftMargin() const;
67 /// return the label font for this row
68 Font const getLabelFont() const;
70 /// bufferview to paint on
74 frontend::Painter & pain_;
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