X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiPainter.h;h=eadf9851669141a6c7a677f13c76afc71c661cad;hb=1e075bdf55c9d54a01e73c4d02268cfab0cffd4f;hp=232798e11ea594972a81373236d4c1242b7705ec;hpb=dc1d8af9a2ce864fb1668f8d568512a7b27c9391;p=lyx.git diff --git a/src/frontends/qt4/GuiPainter.h b/src/frontends/qt4/GuiPainter.h index 232798e11e..eadf985166 100644 --- a/src/frontends/qt4/GuiPainter.h +++ b/src/frontends/qt4/GuiPainter.h @@ -29,11 +29,11 @@ class FontInfo; namespace frontend { /** - * GuiPainter - a painter implementation for Qt4 + * GuiPainter - a painter implementation for Qt */ class GuiPainter : public QPainter, public Painter { public: - GuiPainter(QPaintDevice *); + GuiPainter(QPaintDevice *, double pixel_ratio); virtual ~GuiPainter(); /// draw a line from point to point @@ -41,8 +41,8 @@ public: int x1, int y1, int x2, int y2, Color, - line_style = line_solid, - line_width = line_thin); + line_style ls = line_solid, + int lw = thin_line); /** * lines - draw a set of lines @@ -55,8 +55,9 @@ public: int const * yp, int np, Color, - line_style = line_solid, - line_width = line_thin); + fill_style fs = fill_none, + line_style ls = line_solid, + int lw = thin_line); /// draw a rectangle virtual void rectangle( @@ -64,7 +65,7 @@ public: int w, int h, Color, line_style = line_solid, - line_width = line_thin); + int lw = thin_line); /// draw a filled rectangle virtual void fillRectangle( @@ -86,13 +87,35 @@ public: virtual void image(int x, int y, int w, int h, lyx::graphics::Image const & image); - /// draw a string at position x, y (y is the baseline) - virtual int text(int x, int y, - docstring const & str, FontInfo const & f); + /** draw a string at position x, y (y is the baseline). The + * text direction is given by \c rtl. + * \return the width of the drawn text. + */ + virtual int text(int x, int y, docstring const & str, FontInfo const & f, + bool rtl = false, double wordspacing = 0.0); + + /** draw a string at position x, y (y is the baseline). The + * text direction is enforced by the \c Font. + * \return the width of the drawn text. + */ + virtual int text(int x, int y, docstring const & str, Font const & f, + double wordspacing = 0.0); + + /** draw a string at position x, y (y is the baseline), but + * make sure that the part between \c from and \c to is in + * \c other color. The text direction is enforced by the \c Font. + * \return the width of the drawn text. + */ + virtual int text(int x, int y, docstring const & str, Font const & f, + Color other, size_type from, size_type to, + double const wordspacing); /// draw a char at position x, y (y is the baseline) virtual int text(int x, int y, char_type c, FontInfo const & f); + /// + virtual void textDecoration(FontInfo const & f, int x, int y, int width); + /// draw a string and enclose it inside a button frame virtual void buttonText(int x, int baseline, docstring const & s, FontInfo const & font, bool mouseHover); @@ -124,29 +147,33 @@ public: private: /// check the font, and if set, draw an underline void underline(FontInfo const & f, - int x, int y, int width); + int x, int y, int width, line_style ls = line_solid); /// check the font, and if set, draw an dashed underline void dashedUnderline(FontInfo const & f, int x, int y, int width); + /// check the font, and if set, draw an strike-through line + void strikeoutLine(FontInfo const & f, + int x, int y, int width); + + /// check the font, and if set, draw double underline + void doubleUnderline(FontInfo const & f, + int x, int y, int width); + /// draw a bevelled button border void buttonFrame(int x, int y, int w, int h); - /// draw small caps text - /** - \return width of the drawn text. - */ - int smallCapsText(int x, int y, - QString const & str, FontInfo const & f); - /// set pen parameters void setQPainterPen(QColor const & col, - line_style ls = line_solid, line_width lw = line_thin); + line_style ls = line_solid, int lw = thin_line); + + // Helper for text() method + void do_drawText(int x, int y, QString str, bool rtl, FontInfo const & f, QFont ff); QColor current_color_; Painter::line_style current_ls_; - Painter::line_width current_lw_; + int current_lw_; /// bool const use_pixmap_cache_; ///