Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members | Related Pages

QwtPainter Class Reference

A collection of QPainter workarounds. More...

#include <qwt_painter.h>

List of all members.

Static Public Member Functions

void setScaleMetrics (const QPaintDevice *, const QPaintDevice *)
void resetScaleMetrics ()
double scaleMetricsX ()
double scaleMetricsY ()
void setDeviceClipping (bool)
bool deviceClipping ()
QRect invScale (const QRect &, const QPainter *=NULL)
QPoint invScale (const QPoint &, const QPainter *=NULL)
QRect scale (const QRect &, const QPainter *=NULL)
QPoint scale (const QPoint &, const QPainter *=NULL)
QPointArray scale (const QPointArray &, const QPainter *=NULL)
void setClipRect (QPainter *, const QRect &)
void drawText (QPainter *, int x, int y, const QString &, int len=-1)
void drawText (QPainter *, const QPoint &, const QString &, int len=-1)
void drawText (QPainter *, int x, int y, int w, int h, int flags, const QString &, int len=-1)
void drawText (QPainter *, const QRect &, int flags, const QString &, int len=-1)
void drawRect (QPainter *, int x, int y, int w, int h)
void drawRect (QPainter *, const QRect &rect)
void fillRect (QPainter *, const QRect &, const QBrush &)
void drawEllipse (QPainter *, const QRect &)
void drawLine (QPainter *, int x1, int y1, int x2, int y2)
void drawLine (QPainter *, const QPoint &p1, const QPoint &p2)
void drawPolygon (QPainter *, const QPointArray &pa)
void drawPolyline (QPainter *, const QPointArray &pa)
void drawPoint (QPainter *, int x, int y)
QRect map (const QWMatrix &, const QRect &)
QPointArray map (const QWMatrix &, const QPointArray &)
void drawRoundFrame (QPainter *, const QRect &, int width, bool sunken)

Static Private Member Functions

const QRect & deviceClipRect ()
bool insideEdge (const QPoint &p, const QRect &r, int edge)
QPoint intersectEdge (const QPoint &p1, const QPoint &p2, const QRect &r, int edge)
QPointArray clipPolyline (const QRect &r, const QPointArray &pa, int &index, int &npoints)
QPointArray clip (const QPointArray &)

Static Private Attributes

bool d_deviceClipping = FALSE
double d_scaleMetricsX = 1.0
double d_scaleMetricsY = 1.0


Detailed Description

A collection of QPainter workarounds.

1) Clipping to coordinate system limits

On X11 pixel coordinates are stored in shorts. Qt produces overruns when mapping QCOORDS to shorts.

2) Scaling to device metrics

QPainter scales fonts, line and fill patterns to the metrics of the paint device. Other values like the geometries of rects, points remain device independend. To enable a device independent widget implementation, QwtPainter adds scaling of these geometries. (Unfortunately QPainter::scale scales both types of paintings, so the objects of the first type would be scaled twice).

3) Hide some Qt2/3 incompatibilities

Definition at line 51 of file qwt_painter.h.


Member Function Documentation

QPointArray QwtPainter::clip const QPointArray &   )  [static, private]
 

Definition at line 438 of file qwt_painter.cpp.

References clipPolyline(), and deviceClipRect().

Referenced by deviceClipRect(), drawPolygon(), and drawPolyline().

QPointArray QwtPainter::clipPolyline const QRect &  r,
const QPointArray &  pa,
int &  index,
int &  npoints
[static, private]
 

Sutherland-Hodgman polygon clipping

Definition at line 502 of file qwt_painter.cpp.

References insideEdge(), and intersectEdge().

Referenced by clip().

bool QwtPainter::deviceClipping  )  [static]
 

Returns whether device clipping is enabled. On X11 the default is enabled, otherwise it is disabled.

See also:
QwtPainter::setDeviceClipping()

Definition at line 43 of file qwt_painter.cpp.

References d_deviceClipping.

const QRect & QwtPainter::deviceClipRect  )  [static, private]
 

Returns rect for device clipping

See also:
QwtPainter::setDeviceClipping()

Definition at line 52 of file qwt_painter.cpp.

References clip(), QWT_COORD_MAX, and QWT_COORD_MIN.

Referenced by clip(), drawLine(), and drawPoint().

void QwtPainter::drawEllipse QPainter *  painter,
const QRect &  rect
[static]
 

Wrapper for QPainter::drawEllipse()

Definition at line 332 of file qwt_painter.cpp.

References scale().

Referenced by QwtSymbol::draw().

void QwtPainter::drawLine QPainter *  painter,
const QPoint &  p1,
const QPoint &  p2
[static]
 

Wrapper for QPainter::drawLine()

Definition at line 377 of file qwt_painter.cpp.

References d_deviceClipping, deviceClipRect(), drawPolyline(), and scale().

void QwtPainter::drawLine QPainter *  painter,
int  x1,
int  y1,
int  x2,
int  y2
[static]
 

Wrapper for QPainter::drawLine()

Definition at line 398 of file qwt_painter.cpp.

Referenced by QwtSymbol::draw(), QwtMarker::draw(), QwtGrid::draw(), QwtScaleDraw::drawBackbone(), QwtPlotCanvas::drawOutline(), QwtCurve::drawSticks(), and QwtScaleDraw::drawTick().

void QwtPainter::drawPoint QPainter *  painter,
int  x,
int  y
[static]
 

Wrapper for QPainter::drawPoint()

Definition at line 430 of file qwt_painter.cpp.

References d_deviceClipping, deviceClipRect(), and scale().

Referenced by QwtCurve::drawDots().

void QwtPainter::drawPolygon QPainter *  painter,
const QPointArray &  pa
[static]
 

Wrapper for QPainter::drawPolygon()

Definition at line 407 of file qwt_painter.cpp.

References clip(), d_deviceClipping, and scale().

Referenced by QwtSymbol::draw(), QwtCurve::drawDots(), QwtCurve::drawLines(), QwtCurve::drawSpline(), and QwtCurve::drawSteps().

void QwtPainter::drawPolyline QPainter *  painter,
const QPointArray &  pa
[static]
 

Wrapper for QPainter::drawPolyline()

Definition at line 418 of file qwt_painter.cpp.

References clip(), d_deviceClipping, and scale().

Referenced by drawLine(), QwtCurve::drawLines(), QwtCurve::drawSpline(), and QwtCurve::drawSteps().

void QwtPainter::drawRect QPainter *  painter,
const QRect &  rect
[static]
 

Wrapper for QPainter::drawRect()

Definition at line 315 of file qwt_painter.cpp.

References scale().

void QwtPainter::drawRect QPainter *  painter,
int  x,
int  y,
int  w,
int  h
[static]
 

Wrapper for QPainter::drawRect()

Definition at line 307 of file qwt_painter.cpp.

Referenced by QwtSymbol::draw(), QwtPlotCanvas::drawOutline(), and QwtPlot::printCanvas().

void QwtPainter::drawRoundFrame QPainter *  ,
const QRect &  ,
int  width,
bool  sunken
[static]
 

Definition at line 557 of file qwt_painter.cpp.

Referenced by QwtDial::drawFrame(), and QwtCompassNeedle4::drawNeedle().

void QwtPainter::drawText QPainter *  painter,
const QRect &  rect,
int  flags,
const QString &  text,
int  len = -1
[static]
 

Wrapper for QPainter::drawText()

Definition at line 367 of file qwt_painter.cpp.

References scale().

void QwtPainter::drawText QPainter *  painter,
int  x,
int  y,
int  w,
int  h,
int  flags,
const QString &  text,
int  len = -1
[static]
 

Wrapper for QPainter::drawText()

Definition at line 358 of file qwt_painter.cpp.

References drawText().

void QwtPainter::drawText QPainter *  painter,
const QPoint &  pos,
const QString &  text,
int  len = -1
[static]
 

Wrapper for QPainter::drawText()

Definition at line 349 of file qwt_painter.cpp.

References scale().

void QwtPainter::drawText QPainter *  painter,
int  x,
int  y,
const QString &  text,
int  len = -1
[static]
 

Wrapper for QPainter::drawText()

Definition at line 340 of file qwt_painter.cpp.

Referenced by QwtMarker::draw(), QwtLegendButton::drawContents(), QwtScaleDraw::drawLabel(), drawText(), QwtScale::drawTitle(), and QwtPlot::printTitle().

void QwtPainter::fillRect QPainter *  painter,
const QRect &  rect,
const QBrush &  brush
[static]
 

Wrapper for QPainter::fillRect()

Definition at line 323 of file qwt_painter.cpp.

References scale().

Referenced by QwtPlot::printCanvas().

bool QwtPainter::insideEdge const QPoint &  p,
const QRect &  r,
int  edge
[static, private]
 

Definition at line 446 of file qwt_painter.cpp.

Referenced by clipPolyline().

QPoint QwtPainter::intersectEdge const QPoint &  p1,
const QPoint &  p2,
const QRect &  r,
int  edge
[static, private]
 

Definition at line 463 of file qwt_painter.cpp.

Referenced by clipPolyline().

QPoint QwtPainter::invScale const QPoint &  pos,
const QPainter *  painter = NULL
[static]
 

Scale a point, with inverted scale metrics

Parameters:
pos Point to scale
painter Respect translations, if painter != 0
Returns:
Scaled point
See also:
QwtPainter::setScaleMetrics()

Definition at line 277 of file qwt_painter.cpp.

References d_scaleMetricsX, d_scaleMetricsY, and qwtInt.

QRect QwtPainter::invScale const QRect &  rect,
const QPainter *  painter = NULL
[static]
 

Scale a rect, with inverted scale metrics

Parameters:
rect Rectange to be scaled
painter Respect translations, if painter != 0
Returns:
Scaled point array
See also:
QwtPainter::setScaleMetrics()

Definition at line 242 of file qwt_painter.cpp.

References d_scaleMetricsX, d_scaleMetricsY, map(), and qwtInt.

Referenced by QwtPlot::print().

QPointArray QwtPainter::map const QWMatrix &  m,
const QPointArray &  pa
[static]
 

QPointArray QWMatrix::operator*(const QPointArray &) const. Hides Qt2/3 incompatibilities.

Definition at line 132 of file qwt_painter.cpp.

QRect QwtPainter::map const QWMatrix &  m,
const QRect &  rect
[static]
 

Wrapper for QWMatrix::mapRect. Hides Qt2/3 incompatibilities.

Definition at line 118 of file qwt_painter.cpp.

Referenced by invScale(), QwtScaleDraw::labelBoundingRect(), and scale().

void QwtPainter::resetScaleMetrics  )  [static]
 

Disable scaling

See also:
QwtPainter::setScaleMetrics

Definition at line 91 of file qwt_painter.cpp.

References d_scaleMetricsX, and d_scaleMetricsY.

Referenced by QwtPlot::print(), and setScaleMetrics().

QPointArray QwtPainter::scale const QPointArray &  pa,
const QPainter *  painter = NULL
[static]
 

Scale a point array.

Parameters:
pa Point array to scale
painter Respect translations, if painter != 0
Returns:
Scaled point array
See also:
QwtPainter::setScaleMetrics()

Definition at line 211 of file qwt_painter.cpp.

References d_scaleMetricsX, d_scaleMetricsY, and map().

QPoint QwtPainter::scale const QPoint &  pos,
const QPainter *  painter = NULL
[static]
 

Scale a rectangle.

Parameters:
pos Point to scale
painter Respect translations, if painter != 0
Returns:
Scaled point
See also:
QwtPainter::setScaleMetrics()

Definition at line 184 of file qwt_painter.cpp.

References d_scaleMetricsX, d_scaleMetricsY, and qwtInt.

QRect QwtPainter::scale const QRect &  rect,
const QPainter *  painter = NULL
[static]
 

Scale a rectangle.

Parameters:
rect Rect to scale
painter Respect translations, if painter != 0
Returns:
scaled rect
See also:
QwtPainter::setScaleMetrics()

Definition at line 148 of file qwt_painter.cpp.

References d_scaleMetricsX, d_scaleMetricsY, map(), and qwtInt.

Referenced by drawEllipse(), QwtLegendButton::drawIdentifier(), drawLine(), drawPoint(), drawPolygon(), drawPolyline(), drawRect(), drawText(), fillRect(), QwtPlot::print(), and setClipRect().

double QwtPainter::scaleMetricsX  )  [static]
 

Return the x-scaling factor

See also:
QwtPainter::setScaleMetrics(), QwtPainter::scaleMetricsY()

Definition at line 100 of file qwt_painter.cpp.

References d_scaleMetricsX.

Referenced by QwtPlot::print().

double QwtPainter::scaleMetricsY  )  [static]
 

Return the y-scaling factor

See also:
QwtPainter::setScaleMetrics(), QwtPainter::scaleMetricsX()

Definition at line 109 of file qwt_painter.cpp.

References d_scaleMetricsY.

Referenced by QwtPlot::print().

void QwtPainter::setClipRect QPainter *  painter,
const QRect &  rect
[static]
 

Wrapper for QPainter::setClipRect()

Definition at line 299 of file qwt_painter.cpp.

References scale().

Referenced by QwtPlot::printCanvas(), and QwtPlot::printLegend().

void QwtPainter::setDeviceClipping bool  enable  )  [static]
 

En/Disable device clipping. On X11 the default for device clipping is enabled, otherwise it is disabled.

See also:
QwtPainter::deviceClipping()

Definition at line 32 of file qwt_painter.cpp.

References d_deviceClipping.

void QwtPainter::setScaleMetrics const QPaintDevice *  from,
const QPaintDevice *  to
[static]
 

Scale all QwtPainter drawing operations using the ratio QwtPaintMetrics(from).logicalDpiX() / QwtPaintMetrics(to).logicalDpiX() and QwtPaintMetrics(from).logicalDpiY() / QwtPaintMetrics(to).logicalDpiY()

See also:
QwtPainter::resetScaleMetrics(), QwtPainter::scaleMetricsX, QwtPainter::scaleMetricsY()

Definition at line 72 of file qwt_painter.cpp.

References d_scaleMetricsX, d_scaleMetricsY, and resetScaleMetrics().

Referenced by QwtPlot::print().


Member Data Documentation

bool QwtPainter::d_deviceClipping = FALSE [static, private]
 

Definition at line 21 of file qwt_painter.cpp.

Referenced by deviceClipping(), drawLine(), drawPoint(), drawPolygon(), drawPolyline(), and setDeviceClipping().

double QwtPainter::d_scaleMetricsX = 1.0 [static, private]
 

Definition at line 24 of file qwt_painter.cpp.

Referenced by invScale(), resetScaleMetrics(), scale(), scaleMetricsX(), and setScaleMetrics().

double QwtPainter::d_scaleMetricsY = 1.0 [static, private]
 

Definition at line 25 of file qwt_painter.cpp.

Referenced by invScale(), resetScaleMetrics(), scale(), scaleMetricsY(), and setScaleMetrics().


The documentation for this class was generated from the following files:
Generated on Fri Nov 7 14:11:48 2003 for Qwt Developer's Guide by doxygen 1.3.2