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.
20 #include "support/types.h"
35 namespace frontend { class Painter; }
38 * A class used for painting an individual row of text.
39 * FIXME: get rid of that class.
43 /// initialise and run painter
44 RowPainter(PainterInfo & pi, Text const & text,
45 Row const & row, int x, int y);
47 /// paint various parts
48 /// FIXME: transfer to TextMetrics
49 void paintAppendix() const;
50 void paintDepthBar() const;
51 void paintChangeBar() const;
52 void paintTooLargeMarks(bool const left, bool const right) const;
53 void paintFirst() const;
54 void paintLast() const;
56 void paintOnlyInsets();
57 void paintSelection() const;
60 void paintLanguageMarkings(Row::Element const & e) const;
61 void paintForeignMark(Row::Element const & e) const;
62 void paintNoSpellingMark(Row::Element const & e) const;
63 void paintStringAndSel(Row::Element const & e) const;
64 void paintTextDecoration(Row::Element const & e) const;
65 void paintMisspelledMark(Row::Element const & e) const;
66 void paintChange(Row::Element const & e) const;
67 void paintAppendixStart(int y) const;
68 void paintInset(Row::Element const & e) const;
70 /// return the label font for this row (end label when \c end is true)
71 FontInfo labelFont(bool end) const;
74 void paintLabel() const;
76 void paintTopLevelLabel() const;
79 /// contains painting related information.
84 TextMetrics const & tm_;
85 ParagraphList const & pars_;
91 Paragraph const & par_;
93 /// row changed? (change tracking)
98 int const yo_; // current baseline
104 #endif // ROWPAINTER_H