# qwt_plot_canvas.h

    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 // vim: expandtab
    00011
    00012 #ifndef QWT_PLOT_CANVAS_H
    00013 #define QWT_PLOT_CANVAS_H
    00014
    00015 #include <qframe.h>
    00016 #include <qpen.h>
    00017 #include "qwt_global.h"
    00018
    00019 class QwtPlot;
    00020 class QPixmap;
    00021
    00028 class QWT_EXPORT QwtPlotCanvas : public QFrame
    00029 {
    00030     Q_OBJECT
    00031     friend class QwtPlot;
    00032
    00033 public:
    00034
    00056     enum PaintAttribute
    00057     {
    00058         PaintCached = 1,
    00059         PaintPacked = 2
    00060     };
    00061
    00080     enum FocusIndicator
    00081     {
    00082         NoFocusIndicator,
    00083         CanvasFocusIndicator,
    00084         ItemFocusIndicator
    00085     };
    00086
    00087     void setFocusIndicator(FocusIndicator);
    00088     FocusIndicator focusIndicator() const;
    00089
    00090     void setPaintAttribute(PaintAttribute, bool on = true);
    00091     bool testPaintAttribute(PaintAttribute) const;
    00092
    00093     QPixmap *paintCache();
    00094     const QPixmap *paintCache() const;
    00095     void invalidatePaintCache();
    00096
    00097 protected:
    00098     explicit QwtPlotCanvas(QwtPlot *);
    00099     virtual ~QwtPlotCanvas();
    00100
    00101     virtual void hideEvent(QHideEvent *);
    00102
    00103     virtual void paintEvent(QPaintEvent *);
    00104
    00105     virtual void drawContents(QPainter *);
    00106     virtual void drawFocusIndicator(QPainter *);
    00107
    00108     void drawCanvas(QPainter *painter = NULL);
    00109
    00110 private:
    00111     void setSystemBackground(bool);
    00112
    00113     class PrivateData;
    00114     PrivateData *d_data;
    00115 };
    00116
    00117 #endif