qwt_graphic.h
Go to the documentation of this file.
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_GRAPHIC_H
00011 #define QWT_GRAPHIC_H
00012 
00013 #include "qwt_global.h"
00014 #include "qwt_null_paintdevice.h"
00015 #include <qmetatype.h>
00016 #include <qimage.h>
00017 #include <qpixmap.h>
00018 
00019 class QwtPainterCommand;
00020 
00074 class QWT_EXPORT QwtGraphic: public QwtNullPaintDevice
00075 {
00076 public:
00081     enum RenderHint
00082     {
00095         RenderPensUnscaled = 0x1
00096     };
00097 
00103     typedef QFlags<RenderHint> RenderHints;
00104 
00105     QwtGraphic();
00106     QwtGraphic( const QwtGraphic & );
00107 
00108     virtual ~QwtGraphic();
00109 
00110     QwtGraphic& operator=( const QwtGraphic & );
00111 
00112     void reset();
00113 
00114     bool isNull() const;
00115     bool isEmpty() const;
00116 
00117     void render( QPainter * ) const;
00118 
00119     void render( QPainter *, const QSizeF &, 
00120             Qt::AspectRatioMode = Qt::IgnoreAspectRatio  ) const;
00121 
00122     void render( QPainter *, const QRectF &, 
00123             Qt::AspectRatioMode = Qt::IgnoreAspectRatio  ) const;
00124 
00125     void render( QPainter *, const QPointF &,
00126         Qt::Alignment = Qt::AlignTop | Qt::AlignLeft ) const;
00127 
00128     QPixmap toPixmap() const; 
00129     QPixmap toPixmap( const QSize &, 
00130         Qt::AspectRatioMode = Qt::IgnoreAspectRatio  ) const;
00131 
00132     QImage toImage() const; 
00133     QImage toImage( const QSize &, 
00134         Qt::AspectRatioMode = Qt::IgnoreAspectRatio  ) const;
00135 
00136     QRectF scaledBoundingRect( double sx, double sy ) const;
00137 
00138     QRectF boundingRect() const;
00139     QRectF controlPointRect() const;
00140 
00141     const QVector< QwtPainterCommand > &commands() const;
00142     void setCommands( QVector< QwtPainterCommand > & );
00143 
00144     void setDefaultSize( const QSizeF & );
00145     QSizeF defaultSize() const;
00146     
00147     void setRenderHint( RenderHint, bool on = true );
00148     bool testRenderHint( RenderHint ) const;
00149 
00150 protected:
00151     virtual QSize sizeMetrics() const;
00152 
00153     virtual void drawPath( const QPainterPath & );
00154 
00155     virtual void drawPixmap( const QRectF &,
00156         const QPixmap &, const QRectF & );
00157 
00158     virtual void drawImage( const QRectF &,
00159         const QImage &, const QRectF &, Qt::ImageConversionFlags );
00160 
00161     virtual void updateState( const QPaintEngineState &state );
00162 
00163 private:
00164     void updateBoundingRect( const QRectF & );
00165     void updateControlPointRect( const QRectF & );
00166 
00167     class PathInfo;
00168 
00169     class PrivateData;
00170     PrivateData *d_data;
00171 };
00172 
00173 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtGraphic::RenderHints )
00174 Q_DECLARE_METATYPE( QwtGraphic )
00175 
00176 #endif


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:56