Qwt User's Guide  5.2.3
qwt_paint_buffer.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #ifndef QWT_PAINT_BUFFER_H
11 #define QWT_PAINT_BUFFER_H 1
12 
13 #include <qglobal.h>
14 #if QT_VERSION < 0x040000
15 
16 #include <qpixmap.h>
17 #include "qwt_global.h"
18 
19 class QPainter;
20 
29 class QWT_EXPORT QwtPaintBuffer
30 {
31 public:
32  explicit QwtPaintBuffer();
33  explicit QwtPaintBuffer(QPaintDevice *, const QRect &, QPainter *p = NULL);
34 
35  virtual ~QwtPaintBuffer();
36 
37  void open(QPaintDevice *, const QRect &, QPainter *p = NULL);
38  void close();
39 
40  QPainter *painter();
41  const QPaintDevice *device();
42 
43  static void setEnabled(bool enable);
44  static bool isEnabled();
45 
47  const QPixmap &buffer() const { return d_pixBuffer; }
48 
49 protected:
50  void flush();
51 
52 private:
53  QPixmap d_pixBuffer;
54  QRect d_rect;
55 
56  QPaintDevice *d_device; // use QGuardedPtr
57  QPainter *d_painter; // use QGuardedPtr
58  QPainter *d_devicePainter; // use QGuardedPtr
59 
60  static bool d_enabled;
61 };
62 
63 #endif // QT_VERSION < 0x040000
64 
65 #endif