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.
19 #include "support/types.h"
31 class ParagraphMetrics;
36 namespace frontend { class Painter; }
39 * A class used for painting an individual row of text.
40 * FIXME: get rid of that class.
44 /// initialise and run painter
45 RowPainter(PainterInfo & pi, Text const & text,
46 pit_type pit, Row const & row, int x, int y);
48 /// paint various parts
49 /// FIXME: transfer to TextMetrics
50 void paintAppendix() const;
51 void paintDepthBar() const;
52 void paintChangeBar() const;
53 void paintTooLargeMarks(bool const left, bool const right) const;
54 void paintFirst() const;
57 void paintOnlyInsets();
58 void paintSelection() const;
61 void paintSeparator(double width, Font const & font);
62 void paintForeignMark(double orig_x, Language const * lang, int desc = 0) const;
63 void paintStringAndSel(docstring const & str, Font const & font,
64 Change const & change,
65 pos_type start_pos, pos_type end_pos);
66 void paintMisspelledMark(double orig_x,
67 docstring const & str, Font const & font,
68 pos_type pos, bool changed) const;
69 void paintChange(double orig_x , Font const & font, Change const & change) const;
70 int paintAppendixStart(int y) const;
71 void paintInset(Inset const * inset, Font const & font,
72 Change const & change, pos_type const pos);
74 /// return the label font for this row
75 FontInfo labelFont() const;
78 void paintLabel() const;
80 void paintTopLevelLabel() const;
83 /// contains painting related information.
88 TextMetrics const & text_metrics_;
89 ParagraphList const & pars_;
96 Paragraph const & par_;
97 ParagraphMetrics const & pm_;
99 /// row changed? (change tracking)
100 Change const change_;
104 int const yo_; // current baseline
107 int solid_line_thickness_;
108 int solid_line_offset_;
109 int dotted_line_thickness_;
110 int dotted_line_offset_;
115 #endif // ROWPAINTER_H