*
* \author various
* \author John Levon
- * \author André Pönitz
+ * \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#ifndef ROWPAINTER_H
#define ROWPAINTER_H
+#include "Bidi.h"
+#include "Changes.h"
+
#include "support/types.h"
namespace lyx {
-class Bidi;
class BufferView;
class Font;
+class FontInfo;
+class Inset;
+class Language;
class PainterInfo;
class Paragraph;
class ParagraphList;
class Row;
class Text;
class TextMetrics;
-class ViewMetricsInfo;
namespace frontend { class Painter; }
public:
/// initialise and run painter
RowPainter(PainterInfo & pi, Text const & text,
- pit_type pit, Row const & row, Bidi & bidi, int x, int y);
+ pit_type pit, Row const & row, int x, int y);
/// paint various parts
/// FIXME: transfer to TextMetrics
void paintFirst();
void paintLast();
void paintText();
+ void paintOnlyInsets();
+ void paintSelection();
private:
- void paintForeignMark(double orig_x, Font const & font, int desc = 0);
- void paintHebrewComposeChar(pos_type & vpos, Font const & font);
- void paintArabicComposeChar(pos_type & vpos, Font const & font);
- void paintChars(pos_type & vpos, Font const & font,
- bool hebrew, bool arabic);
+ void paintSeparator(double orig_x, double width, FontInfo const & font);
+ void paintForeignMark(double orig_x, Language const * lang, int desc = 0);
+ void paintMisspelledMark(double orig_x, bool changed);
+ void paintChars(pos_type & vpos, Font const & font);
int paintAppendixStart(int y);
- void paintFromPos(pos_type & vpos);
- void paintInset(pos_type const pos, Font const & font);
+ void paintFromPos(pos_type & vpos, bool changed);
+ void paintInset(Inset const * inset, pos_type const pos);
+ void paintInlineCompletion(Font const & font);
/// return left margin
int leftMargin() const;
/// return the label font for this row
- Font const getLabelFont() const;
+ FontInfo labelFont() const;
+
+ ///
+ void paintLabel();
+ ///
+ void paintTopLevelLabel();
- /// bufferview to paint on
- BufferView & bv_;
- /// Painter to use
- frontend::Painter & pain_;
+ /// contains painting related information.
+ PainterInfo & pi_;
/// Text for the row
Text const & text_;
Paragraph const & par_;
ParagraphMetrics const & pm_;
- /// bidi cache, comes from outside the rowpainter because
- /// rowpainters are normally created in a for loop and there only
- /// one of them is active at a time.
- Bidi & bidi_;
+ /// bidi cache
+ Bidi bidi_;
- /// is row erased? (change tracking)
- bool erased_;
+ /// row changed? (change tracking)
+ Change const change_;
// Looks ugly - is
double const xo_;
int const yo_; // current baseline
double x_;
int width_;
- double separator_;
- double hfill_;
- double label_hfill_;
+ float solid_line_thickness_;
+ int solid_line_offset_;
+ float dotted_line_thickness_;
+ int dotted_line_offset_;
};
} // namespace lyx