Op 5-9-2010 16:46, [email protected] schreef:
Author: uwestoehr
Date: Sun Sep  5 16:46:58 2010
New Revision: 35283
URL: http://www.lyx.org/trac/changeset/35283

Log:
painter: make it possible to draw lines with custom line thicknesses

Modified:
    lyx-devel/trunk/src/frontends/Painter.h
    lyx-devel/trunk/src/frontends/qt4/GuiPainter.cpp
    lyx-devel/trunk/src/frontends/qt4/GuiPainter.h

Modified: lyx-devel/trunk/src/frontends/Painter.h
==============================================================================
--- lyx-devel/trunk/src/frontends/Painter.h     Sun Sep  5 11:08:49 2010        
(r35282)
+++ lyx-devel/trunk/src/frontends/Painter.h     Sun Sep  5 16:46:58 2010        
(r35283)
@@ -55,12 +55,8 @@
  class Painter {
  public:
        Painter() : drawing_enabled_(true) {}
-       /// possible line widths
-       enum line_width {
-               line_thin, //<  thin line
-               line_medium, //<  medium line
-               line_thick //<  thick line
-       };
+
+       float line_width;

        /// possible line styles
        enum line_style {
@@ -80,7 +76,7 @@

        /// draw a line from point to point
        virtual void line(int x1, int y1, int x2, int y2, Color,
-               line_style = line_solid, line_width = line_thin) = 0;
+               line_style = line_solid, float line_width = 0.5) = 0;

        /**
         * lines -  draw a set of lines
@@ -89,11 +85,11 @@
         * @param np size of the points array
         */
        virtual void lines(int const * xp, int const * yp, int np, Color,
-               line_style = line_solid, line_width = line_thin) = 0;
+               line_style = line_solid, float line_width = 0.5) = 0;

        /// draw a rectangle
        virtual void rectangle(int x, int y, int w, int h, Color,
-               line_style = line_solid, line_width = line_thin) = 0;
+               line_style = line_solid, float line_width = 0.5) = 0;

        /// draw a filled rectangle
        virtual void fillRectangle(int x, int y, int w, int h, Color) = 0;

Modified: lyx-devel/trunk/src/frontends/qt4/GuiPainter.cpp
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/GuiPainter.cpp    Sun Sep  5 11:08:49 
2010        (r35282)
+++ lyx-devel/trunk/src/frontends/qt4/GuiPainter.cpp    Sun Sep  5 16:46:58 
2010        (r35283)
@@ -52,7 +52,7 @@
        // new QPainter has default QPen:
        current_color_ = guiApp->colorCache().get(Color_black);
        current_ls_ = line_solid;
-       current_lw_ = line_thin;
+       current_lw_ = 0.5;
  }


@@ -64,7 +64,7 @@


  void GuiPainter::setQPainterPen(QColor const&  col,
-       Painter::line_style ls, Painter::line_width lw)
+       Painter::line_style ls, float lw)
  {
        if (col == current_color_&&  ls == current_ls_&&  lw == current_lw_)
                return;
@@ -81,11 +81,7 @@
                case line_onoffdash: pen.setStyle(Qt::DotLine); break;
        }

-       switch (lw) {
-               case line_thin: pen.setWidth(0); break;
-               case line_medium: pen.setWidth(1); break;
-               case line_thick: pen.setWidth(3); break;
-       }
+       pen.setWidth(lw);

        setPen(pen);
  }
@@ -175,7 +171,7 @@
  void GuiPainter::line(int x1, int y1, int x2, int y2,
        Color col,
        line_style ls,
-       line_width lw)
+       float lw)
  {
        if (!isDrawingEnabled())
                return;
@@ -192,7 +188,7 @@
  void GuiPainter::lines(int const * xp, int const * yp, int np,
        Color col,
        line_style ls,
-       line_width lw)
+       float lw)
  {
        if (!isDrawingEnabled())
                return;
@@ -220,7 +216,7 @@
  void GuiPainter::rectangle(int x, int y, int w, int h,
        Color col,
        line_style ls,
-       line_width lw)
+       float lw)
  {
        if (!isDrawingEnabled())
                return;

Modified: lyx-devel/trunk/src/frontends/qt4/GuiPainter.h
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/GuiPainter.h      Sun Sep  5 11:08:49 
2010        (r35282)
+++ lyx-devel/trunk/src/frontends/qt4/GuiPainter.h      Sun Sep  5 16:46:58 
2010        (r35283)
@@ -42,7 +42,7 @@
                int x2, int y2,
                Color,
                line_style = line_solid,
-               line_width = line_thin);
+               float line_width = 0.5);

        /**
         * lines -  draw a set of lines
@@ -56,7 +56,7 @@
                int np,
                Color,
                line_style = line_solid,
-               line_width = line_thin);
+               float line_width = 0.5);

        /// draw a rectangle
        virtual void rectangle(
@@ -64,7 +64,7 @@
                int w, int h,
                Color,
                line_style = line_solid,
-               line_width = line_thin);
+               float line_width = 0.5);

        /// draw a filled rectangle
        virtual void fillRectangle(
@@ -150,11 +150,11 @@

        /// 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 = 0.5);

        QColor current_color_;
        Painter::line_style current_ls_;
-       Painter::line_width current_lw_;
+       float current_lw_;
        ///
        bool const use_pixmap_cache_;
        ///

Isn't it better to make a function GuiPainter::thinline or so, instead of everywhere specifying the 0.5 ?

Vincent

Reply via email to