X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiPainter.h;h=a3849bb679ca4a65d8d48a362bde653bbe918933;hb=72f91cb394e180419cd3ab85f710b8ad538208f9;hp=06a81128983fef5d509b5188f50723a992a9bf8c;hpb=33bb075fd8a5f8a6d1641416963d8d302abd597a;p=lyx.git diff --git a/src/frontends/qt4/GuiPainter.h b/src/frontends/qt4/GuiPainter.h index 06a8112898..a3849bb679 100644 --- a/src/frontends/qt4/GuiPainter.h +++ b/src/frontends/qt4/GuiPainter.h @@ -13,6 +13,8 @@ #ifndef GUIPAINTER_H #define GUIPAINTER_H +#include "Color.h" + #include "frontends/Painter.h" #include @@ -38,9 +40,9 @@ public: virtual void line( int x1, int y1, int x2, int y2, - ColorCode, + Color, line_style = line_solid, - line_width = line_thin); + float line_width = thin_line); /** * lines - draw a set of lines @@ -52,39 +54,36 @@ public: int const * xp, int const * yp, int np, - ColorCode, + Color, line_style = line_solid, - line_width = line_thin); + float line_width = thin_line); /// draw a rectangle virtual void rectangle( int x, int y, int w, int h, - ColorCode, + Color, line_style = line_solid, - line_width = line_thin); + float line_width = thin_line); /// draw a filled rectangle virtual void fillRectangle( int x, int y, int w, int h, - ColorCode); + Color); /// draw an arc virtual void arc( int x, int y, unsigned int w, unsigned int h, int a1, int a2, - ColorCode); + Color); /// draw a pixel - virtual void point( - int x, int y, - ColorCode); + virtual void point(int x, int y, Color); /// draw an image from the image cache - virtual void image(int x, int y, - int w, int h, + 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) @@ -94,13 +93,54 @@ public: /// draw a char at position x, y (y is the baseline) virtual int text(int x, int y, char_type c, FontInfo const & f); + /// 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); + /// start monochrome painting mode, i.e. map every color into [min,max] - virtual void enterMonochromeMode(ColorCode const & min, - ColorCode const & max); + virtual void enterMonochromeMode(Color const & min, + Color const & max); /// leave monochrome painting mode virtual void leaveMonochromeMode(); + /** + * Draw a string and enclose it inside a rectangle. If + * back color is specified, the background is cleared with + * the given color. If frame is specified, a thin frame is drawn + * around the text with the given color. + */ + virtual void rectText(int x, int baseline, docstring const & str, + FontInfo const & font, Color back, Color frame); + + /// draw a filled rectangle with the shape of a 3D button + virtual void button(int x, int y, int w, int h, bool mouseHover); + + /// draw a character of a preedit string for cjk support. + virtual int preeditText(int x, int y, + char_type c, FontInfo const & f, preedit_style style); + + void wavyHorizontalLine(int x, int y, int width, ColorCode col); + private: + /// check the font, and if set, draw an underline + void underline(FontInfo const & f, + int x, int y, int width); + + /// 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. @@ -110,12 +150,11 @@ private: /// set pen parameters void setQPainterPen(QColor const & col, - line_style ls = line_solid, - line_width lw = line_thin); + line_style ls = line_solid, float lw = thin_line); QColor current_color_; Painter::line_style current_ls_; - Painter::line_width current_lw_; + float current_lw_; /// bool const use_pixmap_cache_; /// @@ -123,7 +162,7 @@ private: /// std::stack monochrome_max_; /// convert into Qt color, possibly applying the monochrome mode - QColor computeColor(ColorCode col); + QColor computeColor(Color col); /// possibly apply monochrome mode QColor filterColor(QColor const & col); ///