qwt_plot_canvas.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_PLOT_CANVAS_H
00011 #define QWT_PLOT_CANVAS_H
00012 
00013 #include "qwt_global.h"
00014 #include <qframe.h>
00015 #include <qpainterpath.h>
00016 
00017 class QwtPlot;
00018 class QPixmap;
00019 
00027 class QWT_EXPORT QwtPlotCanvas : public QFrame
00028 {
00029     Q_OBJECT
00030 
00031     Q_PROPERTY( double borderRadius READ borderRadius WRITE setBorderRadius )
00032 
00033 public:
00034 
00042     enum PaintAttribute
00043     {
00055         BackingStore = 1,
00056 
00072         Opaque       = 2,
00073 
00089         HackStyledBackground = 4,
00090 
00097         ImmediatePaint = 8
00098     };
00099 
00101     typedef QFlags<PaintAttribute> PaintAttributes;
00102 
00109     enum FocusIndicator
00110     {
00112         NoFocusIndicator,
00113 
00118         CanvasFocusIndicator,
00119 
00125         ItemFocusIndicator
00126     };
00127 
00128     explicit QwtPlotCanvas( QwtPlot * = NULL );
00129     virtual ~QwtPlotCanvas();
00130 
00131     QwtPlot *plot();
00132     const QwtPlot *plot() const;
00133 
00134     void setFocusIndicator( FocusIndicator );
00135     FocusIndicator focusIndicator() const;
00136 
00137     void setBorderRadius( double );
00138     double borderRadius() const;
00139 
00140     void setPaintAttribute( PaintAttribute, bool on = true );
00141     bool testPaintAttribute( PaintAttribute ) const;
00142 
00143     const QPixmap *backingStore() const;
00144     void invalidateBackingStore();
00145 
00146     virtual bool event( QEvent * );
00147 
00148     Q_INVOKABLE QPainterPath borderPath( const QRect & ) const;
00149 
00150 public Q_SLOTS:
00151     void replot();
00152 
00153 protected:
00154     virtual void paintEvent( QPaintEvent * );
00155     virtual void resizeEvent( QResizeEvent * );
00156 
00157     virtual void drawFocusIndicator( QPainter * );
00158     virtual void drawBorder( QPainter * );
00159 
00160     void updateStyleSheetInfo();
00161 
00162 private:
00163     void drawCanvas( QPainter *, bool withBackground );
00164 
00165     class PrivateData;
00166     PrivateData *d_data;
00167 };
00168 
00169 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotCanvas::PaintAttributes )
00170 
00171 #endif


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