X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Frowpainter.h;h=63bad10004b80e693493e2221bbe1a1805e5f38d;hb=848c89564fce9c4bfec79b915746dc6bc47abc3d;hp=ad79fd2ac5fb85e0d0d26deca428eeb9aa11497b;hpb=3b9620ae6ddbda098402d3169b465f529455217e;p=lyx.git diff --git a/src/rowpainter.h b/src/rowpainter.h index ad79fd2ac5..63bad10004 100644 --- a/src/rowpainter.h +++ b/src/rowpainter.h @@ -1,3 +1,4 @@ +// -*- C++ -*- /** * \file rowpainter.h * This file is part of LyX, the document processor. @@ -5,102 +6,40 @@ * * \author various * \author John Levon + * \author André Pönitz * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #ifndef ROWPAINTER_H #define ROWPAINTER_H -#include - -#include "LString.h" #include "support/types.h" -class LyXText; -class BufferView; -class Row; -class Paragraph; -class Painter; -class LyXFont; -class VSpace; - -/** - * A class used for painting an individual row of text. - */ -class RowPainter { -public: - /// initialise painter - RowPainter(BufferView const & bv, LyXText const & text, Row const & row); - - /// paint the row. Returns true if CHANGED_IN_DRAW (e.g. image was loaded) - bool paint(int y_offset, int x_offset, int y); +namespace lyx { -private: - // paint various parts - void paintBackground(); - void paintSelection(); - void paintAppendix(); - void paintDepthBar(); - void paintChangeBar(); - void paintFirst(); - void paintLast(); - void paintForeignMark(float const orig_x, LyXFont const & orig_font); - void paintHebrewComposeChar(lyx::pos_type & vpos); - void paintArabicComposeChar(lyx::pos_type & vpos); - void paintChars(lyx::pos_type & vpos, bool hebrew, bool arabic); - int paintPageBreak(string const & label, int y); - int paintAppendixStart(int y); - int paintLengthMarker(string const & prefix, VSpace const & vsp, int start); - /// returns true when CHANGED_IN_DRAW - bool paintText(); - /// returns true when CHANGED_IN_DRAW - bool paintFromPos(lyx::pos_type & vpos); - /// returns true when CHANGED_IN_DRAW - bool paintInset(lyx::pos_type const pos); - - /// return left margin - int leftMargin() const; - - /// return the font at the given pos - LyXFont const getFont(lyx::pos_type pos) const; - - /// return the label font for this row - LyXFont const getLabelFont() const; - - char const transformChar(char c, lyx::pos_type pos) const; - - /// return pixel width for the given pos - int singleWidth(lyx::pos_type pos) const; - int singleWidth(lyx::pos_type pos, char c) const; +class Text; +class BufferView; +class PainterInfo; +class ViewMetricsInfo; - /// bufferview to paint on - BufferView const & bv_; +namespace frontend { class Painter; } - /// Painter to use - Painter & pain_; +/// paint visible paragraph of main text +void paintText(BufferView & bv, frontend::Painter & painter); - /// LyXText for the row - LyXText const & text_; +/// paint the rows of a text inset +void paintTextInset(Text const & text, PainterInfo & pi, int x, int y); - /// The row to paint - Row const & row_; +/// some space for drawing the 'nested' markers (in pixel) +inline int nestMargin() { return 15; } - /// Row's paragraph - Paragraph const & par_; +/// margin for changebar +inline int changebarMargin() { return 12; } - // Looks ugly - is - int xo_; - int yo_; - float x_; - int y_; - int width_; - float separator_; - float hfill_; - float label_hfill_; -}; +/// right margin +inline int rightMargin() { return 10; } -/// return the pixel height of a space marker before/after a par -int getLengthMarkerHeight(BufferView const & bv, VSpace const & vsp); +} // namespace lyx #endif // ROWPAINTER_H