From f01e36b6460a8ec8f66aa130282c567138af9979 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Uwe=20St=C3=B6hr?= Date: Sun, 5 Sep 2010 14:46:58 +0000 Subject: [PATCH] painter: make it possible to draw lines with custom line thicknesses git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35283 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/Painter.h | 14 +++++--------- src/frontends/qt4/GuiPainter.cpp | 16 ++++++---------- src/frontends/qt4/GuiPainter.h | 10 +++++----- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/src/frontends/Painter.h b/src/frontends/Painter.h index 2f2f5bf811..31bb2405fd 100644 --- a/src/frontends/Painter.h +++ b/src/frontends/Painter.h @@ -55,12 +55,8 @@ namespace frontend { 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 @@ public: /// 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 @@ public: * @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; diff --git a/src/frontends/qt4/GuiPainter.cpp b/src/frontends/qt4/GuiPainter.cpp index fefa7e3a75..fb3e5e9bf8 100644 --- a/src/frontends/qt4/GuiPainter.cpp +++ b/src/frontends/qt4/GuiPainter.cpp @@ -52,7 +52,7 @@ GuiPainter::GuiPainter(QPaintDevice * device) // 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 @@ GuiPainter::~GuiPainter() 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 @@ void GuiPainter::setQPainterPen(QColor const & col, 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::point(int x, int y, Color col) 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::line(int x1, int y1, int x2, int y2, 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::lines(int const * xp, int const * yp, int np, void GuiPainter::rectangle(int x, int y, int w, int h, Color col, line_style ls, - line_width lw) + float lw) { if (!isDrawingEnabled()) return; diff --git a/src/frontends/qt4/GuiPainter.h b/src/frontends/qt4/GuiPainter.h index 263b3a851c..ffa95ccab0 100644 --- a/src/frontends/qt4/GuiPainter.h +++ b/src/frontends/qt4/GuiPainter.h @@ -42,7 +42,7 @@ public: 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 @@ public: 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 @@ public: 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 @@ 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 = 0.5); QColor current_color_; Painter::line_style current_ls_; - Painter::line_width current_lw_; + float current_lw_; /// bool const use_pixmap_cache_; /// -- 2.39.2