qwt_plot_abstract_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_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


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