]> git.saurik.com Git - wxWidgets.git/blame - include/wx/dcbuffer.h
send more page change events (patch 750521); document this behaviour
[wxWidgets.git] / include / wx / dcbuffer.h
CommitLineData
67e2efca
RL
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/dcbuffer.h
3// Purpose: wxBufferedDC class
4// Author: Ron Lee <ron@debian.org>
5// Modified by:
6// Created: 16/03/02
7// RCS-ID: $Id$
8// Copyright: (c) Ron Lee
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_DCBUFFER_H_
13#define _WX_DCBUFFER_H_
14
af49c4b8 15#if defined(__GNUG__) && !defined(__APPLE__)
67e2efca
RL
16#pragma interface "dcbuffer.h"
17#endif
18
19#include "wx/dcmemory.h"
20
21
22// ==============================================================
23// Double buffering helper.
24// --------------------------------------------------------------
25
b8be0b4e 26class WXDLLEXPORT wxBufferedDC : public wxMemoryDC
67e2efca
RL
27{
28private:
29
30 // Without the existence of a wxNullDC, this must be
31 // a pointer, else it could probably be a reference.
32
33 wxDC *m_dc;
34 wxBitmap m_buffer;
35
36public:
37
38 // Default ctor, must subsequently call Init for
39 // two stage construction.
40
41 wxBufferedDC()
42 : m_dc( 0 )
43 {}
44
45 // Construct a wxBufferedDC using a user supplied buffer.
46
47 wxBufferedDC( wxDC *dc, const wxBitmap &buffer );
48
49 // Construct a wxBufferedDC with an internal buffer of 'area'
50 // (where area is usually something like the size of the window
51 // being buffered)
52
53 wxBufferedDC( wxDC *dc, const wxSize &area );
54
55 // default copy ctor ok.
56
57 // The usually desired action in the dtor is to blit the buffer.
58
59 ~wxBufferedDC();
60
61 // These reimplement the actions of the ctors for
62 // two stage creation, but are not used by the ctors
63 // themselves to save a few cpu cycles.
64
65 void Init( wxDC *dc, const wxBitmap &bitmap );
66 void Init( wxDC *dc, const wxSize &area );
67
68 // Blits the buffer to the dc, and detaches the dc from
69 // the buffer. Usually called in the dtor or by the dtor
70 // of derived classes if the BufferedDC must blit before
71 // the derived class (which may own the dc it's blitting
72 // to) is destroyed.
73
74 void UnMask();
22f3361e
VZ
75
76 DECLARE_NO_COPY_CLASS(wxBufferedDC)
67e2efca
RL
77};
78
79
80// ==============================================================
81// Double buffered PaintDC.
82// --------------------------------------------------------------
83
84// Creates a double buffered wxPaintDC, optionally allowing the
85// user to specify their own buffer to use.
86
b8be0b4e 87class WXDLLEXPORT wxBufferedPaintDC : public wxBufferedDC
67e2efca
RL
88{
89private:
90
91 wxPaintDC m_paintdc;
92
93public:
94
95 wxBufferedPaintDC( wxWindow *window, const wxBitmap &buffer = wxNullBitmap );
96
97 // default copy ctor ok.
98
99 ~wxBufferedPaintDC();
100};
101
102
103#endif // _WX_DCBUFFER_H_
104