3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS
18 #include "support/types.h"
29 * A class used for painting an individual row of text.
33 /// initialise painter
34 RowPainter(BufferView const & bv, LyXText const & text, Row const & row);
37 void paint(int y_offset, int x_offset, int y);
40 // paint various parts
41 void paintBackground();
42 void paintSelection();
45 void paintChangeBar();
48 void paintForeignMark(float const orig_x, LyXFont const & orig_font);
49 void paintHebrewComposeChar(lyx::pos_type & vpos);
50 void paintArabicComposeChar(lyx::pos_type & vpos);
51 void paintChars(lyx::pos_type & vpos, bool hebrew, bool arabic);
52 int paintPageBreak(string const & label, int y);
53 int paintAppendixStart(int y);
54 int paintLengthMarker(string const & prefix, VSpace const & vsp, int start);
56 void paintFromPos(lyx::pos_type & vpos);
57 void paintInset(lyx::pos_type const pos);
59 /// return left margin
60 int leftMargin() const;
62 /// return the font at the given pos
63 LyXFont const getFont(lyx::pos_type pos) const;
65 /// return the label font for this row
66 LyXFont const getLabelFont() const;
68 char const transformChar(char c, lyx::pos_type pos) const;
70 /// return pixel width for the given pos
71 int singleWidth(lyx::pos_type pos) const;
72 int singleWidth(lyx::pos_type pos, char c) const;
74 /// bufferview to paint on
75 BufferView const & bv_;
80 /// LyXText for the row
81 LyXText const & text_;
87 Paragraph const & par_;
100 /// return the pixel height of a space marker before/after a par
101 int getLengthMarkerHeight(BufferView const & bv, VSpace const & vsp);
103 #endif // ROWPAINTER_H