X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FRowPainter.h;h=a4120e6dfd81f38eaf65621cab5fc1d320d22b44;hb=a34b5376c24e741bdba4e564edd83f7faa3ba4eb;hp=0628f3288f2a4c81488ab24b7425a0d6125f9968;hpb=52236503d3f680a2df00a6e6539b530703066d32;p=lyx.git diff --git a/src/RowPainter.h b/src/RowPainter.h index 0628f3288f..a4120e6dfd 100644 --- a/src/RowPainter.h +++ b/src/RowPainter.h @@ -14,8 +14,8 @@ #ifndef ROWPAINTER_H #define ROWPAINTER_H -#include "Bidi.h" #include "Changes.h" +#include "Row.h" #include "support/types.h" @@ -30,27 +30,11 @@ class PainterInfo; class Paragraph; class ParagraphList; class ParagraphMetrics; -class Row; class Text; class TextMetrics; namespace frontend { class Painter; } -/** - * FIXME: Re-implement row painting using row elements. - * - * This is not difficult in principle, but the code is intricate and - * needs some careful analysis. The first thing that needs to be done - * is to break row elements with the same criteria. Currently breakRow - * does not consider on-the-fly spell-checking, but it is not clear to - * me that it is required. Moreover, this thing would only work if we - * are sure that the Row object is up-to-date when drawing happens. - * This depends on the update machinery. - * - * This would allow to get rid of the Bidi class. - */ - - /** * A class used for painting an individual row of text. * FIXME: get rid of that class. @@ -63,36 +47,33 @@ public: /// paint various parts /// FIXME: transfer to TextMetrics - void paintAppendix(); - void paintDepthBar(); - void paintChangeBar(); - void paintTooLargeMarks(bool const left, bool const right); - void paintFirst(); + void paintAppendix() const; + void paintDepthBar() const; + void paintChangeBar() const; + void paintTooLargeMarks(bool const left, bool const right) const; + void paintFirst() const; void paintLast(); void paintText(); void paintOnlyInsets(); - void paintSelection(); + void paintSelection() const; private: - 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, bool changed); - void paintInset(Inset const * inset, pos_type const pos); - void paintInlineCompletion(Font const & font); - - /// return left margin - int leftMargin() const; + void paintSeparator(double width, Font const & font); + void paintForeignMark(double orig_x, Language const * lang, int desc = 0) const; + void paintStringAndSel(Row::Element const & e); + void paintMisspelledMark(double orig_x, Row::Element const & e) const; + void paintChange(double orig_x , Font const & font, Change const & change) const; + void paintAppendixStart(int y) const; + void paintInset(Inset const * inset, Font const & font, + Change const & change, pos_type const pos); /// return the label font for this row FontInfo labelFont() const; /// - void paintLabel(); + void paintLabel() const; /// - void paintTopLevelLabel(); + void paintTopLevelLabel() const; /// contains painting related information. @@ -100,7 +81,7 @@ private: /// Text for the row Text const & text_; - TextMetrics & text_metrics_; + TextMetrics const & text_metrics_; ParagraphList const & pars_; /// The row to paint @@ -111,9 +92,6 @@ private: Paragraph const & par_; ParagraphMetrics const & pm_; - /// bidi cache - Bidi bidi_; - /// row changed? (change tracking) Change const change_; @@ -122,10 +100,9 @@ private: int const yo_; // current baseline double x_; int width_; - float solid_line_thickness_; + int solid_line_thickness_; int solid_line_offset_; - float dotted_line_thickness_; - int dotted_line_offset_; + int dotted_line_thickness_; }; } // namespace lyx