You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
3.3 KiB
C
127 lines
3.3 KiB
C
3 weeks ago
|
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
|
||
|
* Qwt Widget Library
|
||
|
* Copyright (C) 1997 Josef Wilgen
|
||
|
* Copyright (C) 2002 Uwe Rathmann
|
||
|
*
|
||
|
* This library is free software; you can redistribute it and/or
|
||
|
* modify it under the terms of the Qwt License, Version 1.0
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#ifndef QWT_NULL_PAINT_DEVICE_H
|
||
|
#define QWT_NULL_PAINT_DEVICE_H 1
|
||
|
|
||
|
#include "qwt_global.h"
|
||
|
#include <qpaintdevice.h>
|
||
|
#include <qpaintengine.h>
|
||
|
|
||
|
/*!
|
||
|
\brief A null paint device doing nothing
|
||
|
|
||
|
Sometimes important layout/rendering geometries are not
|
||
|
available or changeable from the public Qt class interface.
|
||
|
( f.e hidden in the style implementation ).
|
||
|
|
||
|
QwtNullPaintDevice can be used to manipulate or filter out
|
||
|
this information by analyzing the stream of paint primitives.
|
||
|
|
||
|
F.e. QwtNullPaintDevice is used by QwtPlotCanvas to identify
|
||
|
styled backgrounds with rounded corners.
|
||
|
*/
|
||
|
|
||
|
class QWT_EXPORT QwtNullPaintDevice: public QPaintDevice
|
||
|
{
|
||
|
public:
|
||
|
/*!
|
||
|
\brief Render mode
|
||
|
|
||
|
\sa setMode(), mode()
|
||
|
*/
|
||
|
enum Mode
|
||
|
{
|
||
|
/*!
|
||
|
All vector graphic primitives are painted by
|
||
|
the corresponding draw methods
|
||
|
*/
|
||
|
NormalMode,
|
||
|
|
||
|
/*!
|
||
|
Vector graphic primitives ( beside polygons ) are mapped to a QPainterPath
|
||
|
and are painted by drawPath. In PathMode mode
|
||
|
only a few draw methods are called:
|
||
|
|
||
|
- drawPath()
|
||
|
- drawPixmap()
|
||
|
- drawImage()
|
||
|
- drawPolygon()
|
||
|
*/
|
||
|
PolygonPathMode,
|
||
|
|
||
|
/*!
|
||
|
Vector graphic primitives are mapped to a QPainterPath
|
||
|
and are painted by drawPath. In PathMode mode
|
||
|
only a few draw methods are called:
|
||
|
|
||
|
- drawPath()
|
||
|
- drawPixmap()
|
||
|
- drawImage()
|
||
|
*/
|
||
|
PathMode
|
||
|
};
|
||
|
|
||
|
QwtNullPaintDevice();
|
||
|
virtual ~QwtNullPaintDevice();
|
||
|
|
||
|
void setMode( Mode );
|
||
|
Mode mode() const;
|
||
|
|
||
|
virtual QPaintEngine *paintEngine() const;
|
||
|
|
||
|
virtual int metric( PaintDeviceMetric ) const;
|
||
|
|
||
|
virtual void drawRects(const QRect *, int );
|
||
|
virtual void drawRects(const QRectF *, int );
|
||
|
|
||
|
virtual void drawLines(const QLine *, int );
|
||
|
virtual void drawLines(const QLineF *, int );
|
||
|
|
||
|
virtual void drawEllipse(const QRectF &);
|
||
|
virtual void drawEllipse(const QRect &);
|
||
|
|
||
|
virtual void drawPath(const QPainterPath &);
|
||
|
|
||
|
virtual void drawPoints(const QPointF *, int );
|
||
|
virtual void drawPoints(const QPoint *, int );
|
||
|
|
||
|
virtual void drawPolygon(
|
||
|
const QPointF *, int , QPaintEngine::PolygonDrawMode );
|
||
|
|
||
|
virtual void drawPolygon(
|
||
|
const QPoint *, int , QPaintEngine::PolygonDrawMode );
|
||
|
|
||
|
virtual void drawPixmap(const QRectF &,
|
||
|
const QPixmap &, const QRectF &);
|
||
|
|
||
|
virtual void drawTextItem(const QPointF &, const QTextItem &);
|
||
|
|
||
|
virtual void drawTiledPixmap(const QRectF &,
|
||
|
const QPixmap &, const QPointF & );
|
||
|
|
||
|
virtual void drawImage(const QRectF &,
|
||
|
const QImage &, const QRectF &, Qt::ImageConversionFlags );
|
||
|
|
||
|
virtual void updateState( const QPaintEngineState & );
|
||
|
|
||
|
protected:
|
||
|
//! \return Size needed to implement metric()
|
||
|
virtual QSize sizeMetrics() const = 0;
|
||
|
|
||
|
private:
|
||
|
class PaintEngine;
|
||
|
PaintEngine *d_engine;
|
||
|
|
||
|
class PrivateData;
|
||
|
PrivateData *d_data;
|
||
|
};
|
||
|
|
||
|
#endif
|