1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxMemoryDC base header
4 // Author: Julian Smart
7 // Copyright: (c) Julian Smart
9 // Licence: wxWindows Licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_DCMEMORY_H_BASE_
13 #define _WX_DCMEMORY_H_BASE_
16 #include "wx/bitmap.h"
21 //-----------------------------------------------------------------------------
23 //-----------------------------------------------------------------------------
25 class WXDLLIMPEXP_CORE wxMemoryDC
: public wxDC
29 wxMemoryDC( wxBitmap
& bitmap
);
30 wxMemoryDC( wxDC
*dc
);
32 // select the given bitmap to draw on it
33 void SelectObject(wxBitmap
& bmp
);
35 // select the given bitmap for read-only
36 void SelectObjectAsSource(const wxBitmap
& bmp
);
38 // get selected bitmap
39 const wxBitmap
& GetSelectedBitmap() const;
40 wxBitmap
& GetSelectedBitmap();
43 DECLARE_DYNAMIC_CLASS(wxMemoryDC
)
50 // NOTE: different native implementations of wxMemoryDC will derive from
51 // different wxDC classes (wxPaintDC, wxWindowDC, etc), so that
52 // we cannot derive wxMemoryDCBase from wxDC and then use it as the
53 // only base class for native impl of wxMemoryDC...
54 class WXDLLEXPORT wxMemoryDCBase
59 // avoid warnings about having virtual functions but non virtual dtor
60 virtual ~wxMemoryDCBase() { }
62 // select the given bitmap to draw on it
63 void SelectObject(wxBitmap
& bmp
)
65 // make sure that the given wxBitmap is not sharing its data with other
66 // wxBitmap instances as its contents will be modified by any drawing
67 // operation done on this DC
74 // select the given bitmap for read-only
75 virtual void SelectObjectAsSource(const wxBitmap
& bmp
)
81 virtual void DoSelect(const wxBitmap
& bmp
) = 0;
88 #if defined(__WXPALMOS__)
89 #include "wx/palmos/dcmemory.h"
90 #elif defined(__WXMSW__)
91 #include "wx/msw/dcmemory.h"
92 #elif defined(__WXMOTIF__)
93 #include "wx/motif/dcmemory.h"
94 #elif defined(__WXGTK20__)
95 #include "wx/gtk/dcmemory.h"
96 #elif defined(__WXGTK__)
97 #include "wx/gtk1/dcmemory.h"
98 #elif defined(__WXX11__)
99 #include "wx/x11/dcmemory.h"
100 #elif defined(__WXMGL__)
101 #include "wx/mgl/dcmemory.h"
102 #elif defined(__WXDFB__)
103 #include "wx/dfb/dcmemory.h"
104 #elif defined(__WXMAC__)
105 #include "wx/mac/dcmemory.h"
106 #elif defined(__WXCOCOA__)
107 #include "wx/cocoa/dcmemory.h"
108 #elif defined(__WXPM__)
109 #include "wx/os2/dcmemory.h"
113 // _WX_DCMEMORY_H_BASE_