Qwt User's Guide  6.1.6
qwt_graphic.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_GRAPHIC_H
11 #define QWT_GRAPHIC_H
12 
13 #include "qwt_global.h"
14 #include "qwt_null_paintdevice.h"
15 #include <qmetatype.h>
16 #include <qimage.h>
17 #include <qpixmap.h>
18 
19 class QwtPainterCommand;
20 
74 class QWT_EXPORT QwtGraphic: public QwtNullPaintDevice
75 {
76 public:
82  {
95  RenderPensUnscaled = 0x1
96  };
97 
103  typedef QFlags<RenderHint> RenderHints;
104 
105  QwtGraphic();
106  QwtGraphic( const QwtGraphic & );
107 
108  virtual ~QwtGraphic();
109 
110  QwtGraphic& operator=( const QwtGraphic & );
111 
112  void reset();
113 
114  bool isNull() const;
115  bool isEmpty() const;
116 
117  void render( QPainter * ) const;
118 
119  void render( QPainter *, const QSizeF &,
120  Qt::AspectRatioMode = Qt::IgnoreAspectRatio ) const;
121 
122  void render( QPainter *, const QRectF &,
123  Qt::AspectRatioMode = Qt::IgnoreAspectRatio ) const;
124 
125  void render( QPainter *, const QPointF &,
126  Qt::Alignment = Qt::AlignTop | Qt::AlignLeft ) const;
127 
128  QPixmap toPixmap() const;
129  QPixmap toPixmap( const QSize &,
130  Qt::AspectRatioMode = Qt::IgnoreAspectRatio ) const;
131 
132  QImage toImage() const;
133  QImage toImage( const QSize &,
134  Qt::AspectRatioMode = Qt::IgnoreAspectRatio ) const;
135 
136  QRectF scaledBoundingRect( double sx, double sy ) const;
137 
138  QRectF boundingRect() const;
139  QRectF controlPointRect() const;
140 
141  const QVector< QwtPainterCommand > &commands() const;
142  void setCommands( QVector< QwtPainterCommand > & );
143 
144  void setDefaultSize( const QSizeF & );
145  QSizeF defaultSize() const;
146 
147  void setRenderHint( RenderHint, bool on = true );
148  bool testRenderHint( RenderHint ) const;
149 
150 protected:
151  virtual QSize sizeMetrics() const;
152 
153  virtual void drawPath( const QPainterPath & );
154 
155  virtual void drawPixmap( const QRectF &,
156  const QPixmap &, const QRectF & );
157 
158  virtual void drawImage( const QRectF &,
159  const QImage &, const QRectF &, Qt::ImageConversionFlags );
160 
161  virtual void updateState( const QPaintEngineState &state );
162 
163 private:
164  void updateBoundingRect( const QRectF & );
165  void updateControlPointRect( const QRectF & );
166 
167  class PathInfo;
168 
169  class PrivateData;
170  PrivateData *d_data;
171 };
172 
173 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtGraphic::RenderHints )
174 Q_DECLARE_METATYPE( QwtGraphic )
175 
176 #endif
QwtPainterCommand
Definition: qwt_painter_command.h:32
QwtNullPaintDevice::drawPath
virtual void drawPath(const QPainterPath &)
See QPaintEngine::drawPath()
Definition: qwt_null_paintdevice.cpp:510
QwtNullPaintDevice::sizeMetrics
virtual QSize sizeMetrics() const =0
QwtGraphic::RenderHints
QFlags< RenderHint > RenderHints
Render hints.
Definition: qwt_graphic.h:103
QwtNullPaintDevice::drawImage
virtual void drawImage(const QRectF &, const QImage &, const QRectF &, Qt::ImageConversionFlags)
See QPaintEngine::drawImage()
Definition: qwt_null_paintdevice.cpp:579
QwtNullPaintDevice::updateState
virtual void updateState(const QPaintEngineState &)
See QPaintEngine::updateState()
Definition: qwt_null_paintdevice.cpp:590
QwtGraphic
A paint device for scalable graphics.
Definition: qwt_graphic.h:75
QwtGraphic::RenderHint
RenderHint
Definition: qwt_graphic.h:82
QwtNullPaintDevice::drawPixmap
virtual void drawPixmap(const QRectF &, const QPixmap &, const QRectF &)
See QPaintEngine::drawPixmap()
Definition: qwt_null_paintdevice.cpp:552
QwtNullPaintDevice
A null paint device doing nothing.
Definition: qwt_null_paintdevice.h:32