Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_ABSTRACT_CANVAS_H
00011 #define QWT_PLOT_ABSTRACT_CANVAS_H
00012
00013 #include "qwt_global.h"
00014 #include <qframe.h>
00015
00016 class QwtPlot;
00017
00018 class QWT_EXPORT QwtPlotAbstractCanvas
00019 {
00020 public:
00027 enum FocusIndicator
00028 {
00030 NoFocusIndicator,
00031
00036 CanvasFocusIndicator,
00037
00043 ItemFocusIndicator
00044 };
00045
00046 explicit QwtPlotAbstractCanvas( QWidget *canvasWidget );
00047 virtual ~QwtPlotAbstractCanvas();
00048
00049 QwtPlot *plot();
00050 const QwtPlot *plot() const;
00051
00052 void setFocusIndicator( FocusIndicator );
00053 FocusIndicator focusIndicator() const;
00054
00055 void setBorderRadius( double );
00056 double borderRadius() const;
00057
00058 protected:
00059 QWidget* canvasWidget();
00060 const QWidget* canvasWidget() const;
00061
00062 virtual void drawFocusIndicator( QPainter * );
00063 virtual void drawBorder( QPainter * );
00064 virtual void drawBackground( QPainter * );
00065
00066 void fillBackground( QPainter * );
00067 void drawCanvas( QPainter * );
00068 void drawStyled( QPainter *, bool );
00069 void drawUnstyled( QPainter * );
00070
00071 QPainterPath borderPath2( const QRect &rect ) const;
00072 void updateStyleSheetInfo();
00073
00074 private:
00075 Q_DISABLE_COPY(QwtPlotAbstractCanvas)
00076
00077 class PrivateData;
00078 PrivateData *d_data;
00079 };
00080
00081 class QWT_EXPORT QwtPlotAbstractGLCanvas: public QwtPlotAbstractCanvas
00082 {
00083 public:
00091 enum PaintAttribute
00092 {
00104 BackingStore = 1,
00105
00112 ImmediatePaint = 8,
00113 };
00114
00116 typedef QFlags<PaintAttribute> PaintAttributes;
00117
00118 explicit QwtPlotAbstractGLCanvas( QWidget *canvasWidget );
00119 virtual ~QwtPlotAbstractGLCanvas();
00120
00121 void setPaintAttribute( PaintAttribute, bool on = true );
00122 bool testPaintAttribute( PaintAttribute ) const;
00123
00124 void setFrameStyle( int style );
00125 int frameStyle() const;
00126
00127 void setFrameShadow( QFrame::Shadow );
00128 QFrame::Shadow frameShadow() const;
00129
00130 void setFrameShape( QFrame::Shape );
00131 QFrame::Shape frameShape() const;
00132
00133 void setLineWidth( int );
00134 int lineWidth() const;
00135
00136 void setMidLineWidth( int );
00137 int midLineWidth() const;
00138
00139 int frameWidth() const;
00140 QRect frameRect() const;
00141
00142 virtual void invalidateBackingStore() = 0;
00143
00144 protected:
00145 void replot();
00146 void draw( QPainter * );
00147
00148 private:
00149 virtual void clearBackingStore() = 0;
00150
00151 class PrivateData;
00152 PrivateData *d_data;
00153 };
00154
00155 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotAbstractGLCanvas::PaintAttributes )
00156
00157 #endif