]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/Painter.h
use QWaitCondition instead of QEventLoop for waiting on GUI thread-call finished...
[lyx.git] / src / frontends / Painter.h
index 50f06d487266a07221afda13b227d712260f343d..8bbda37701955e54f71c0da47501353977b3fcee 100644 (file)
@@ -13,7 +13,7 @@
 #ifndef PAINTER_H
 #define PAINTER_H
 
-#include "ColorCode.h"
+#include "Color.h"
 
 #include "support/strfwd.h"
 
@@ -55,11 +55,9 @@ namespace frontend {
 class Painter {
 public:
        Painter() : drawing_enabled_(true) {}
-       /// possible line widths
-       enum line_width {
-               line_thin, //< thin line
-               line_thick //< thick line
-       };
+
+       float line_width;
+       static const float thin_line;
 
        /// possible line styles
        enum line_style {
@@ -78,8 +76,8 @@ public:
        virtual ~Painter() {}
 
        /// draw a line from point to point
-       virtual void line(int x1, int y1, int x2, int y2, ColorCode,
-               line_style = line_solid, line_width = line_thin) = 0;
+       virtual void line(int x1, int y1, int x2, int y2, Color,
+               line_style = line_solid, float line_width = thin_line) = 0;
 
        /**
         * lines -  draw a set of lines
@@ -87,22 +85,22 @@ public:
         * @param yp array of points' y co-ords
         * @param np size of the points array
         */
-       virtual void lines(int const * xp, int const * yp, int np, ColorCode,
-               line_style = line_solid, line_width = line_thin) = 0;
+       virtual void lines(int const * xp, int const * yp, int np, Color,
+               line_style = line_solid, float line_width = thin_line) = 0;
 
        /// draw a rectangle
-       virtual void rectangle(int x, int y, int w, int h, ColorCode,
-               line_style = line_solid, line_width = line_thin) = 0;
+       virtual void rectangle(int x, int y, int w, int h, Color,
+               line_style = line_solid, float line_width = thin_line) = 0;
 
        /// draw a filled rectangle
-       virtual void fillRectangle(int x, int y, int w, int h, ColorCode) = 0;
+       virtual void fillRectangle(int x, int y, int w, int h, Color) = 0;
 
        /// draw an arc
        virtual void arc(int x, int y, unsigned int w, unsigned int h,
-               int a1, int a2, ColorCode) = 0;
+               int a1, int a2, Color) = 0;
 
        /// draw a pixel
-       virtual void point(int x, int y, ColorCode) = 0;
+       virtual void point(int x, int y, Color) = 0;
 
        /// draw a filled rectangle with the shape of a 3D button
        virtual void button(int x, int y, int w, int h, bool mouseHover) = 0;
@@ -117,7 +115,7 @@ public:
        */
        virtual int text(int x, int y, docstring const & str, FontInfo const & f) = 0;
 
-       void setDrawingEnabled(bool drawing_enabled = true)
+       void setDrawingEnabled(bool drawing_enabled)
        { drawing_enabled_ = drawing_enabled; }
 
        /// Indicate wether real screen drawing shall be done or not.
@@ -136,7 +134,7 @@ public:
         * around the text with the given color.
         */
        virtual void rectText(int x, int baseline, docstring const & str,
-               FontInfo const & font, ColorCode back, ColorCode frame) = 0;
+               FontInfo const & font, Color back, Color frame) = 0;
 
        /// draw a string and enclose it inside a button frame
        virtual void buttonText(int x, int baseline, docstring const & s,
@@ -147,11 +145,12 @@ public:
                char_type c, FontInfo const & f, preedit_style style) = 0;
 
        /// start monochrome painting mode, i.e. map every color into [min,max]
-       virtual void enterMonochromeMode(ColorCode const & min, 
-               ColorCode const & max) = 0;
+       virtual void enterMonochromeMode(Color const & min, 
+               Color const & max) = 0;
        /// leave monochrome painting mode
        virtual void leaveMonochromeMode() = 0;
-
+       /// draws a wavy line that can be used for underlining.
+       virtual void wavyHorizontalLine(int x, int y, int width, ColorCode col) = 0;
 private:
        ///
        bool drawing_enabled_;