]> git.saurik.com Git - wxWidgets.git/blob - include/wx/dcmemory.h
af42e0135d24adde739944869461cad475c37bf0
[wxWidgets.git] / include / wx / dcmemory.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/dcmemory.h
3 // Purpose: wxMemoryDC base header
4 // Author: Julian Smart
5 // Modified by:
6 // Created:
7 // Copyright: (c) Julian Smart
8 // RCS-ID: $Id$
9 // Licence: wxWindows Licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_DCMEMORY_H_BASE_
13 #define _WX_DCMEMORY_H_BASE_
14
15 #include "wx/defs.h"
16 #include "wx/bitmap.h"
17
18 // NOTE: different native implementations of wxMemoryDC will derive from
19 // different wxDC classes (wxPaintDC, wxWindowDC, etc), so that
20 // we cannot derive wxMemoryDCBase from wxDC and then use it as the
21 // only base class for native impl of wxMemoryDC...
22 class WXDLLEXPORT wxMemoryDCBase
23 {
24 public:
25 wxMemoryDCBase() { }
26
27 // avoid warnings about having virtual functions but non virtual dtor
28 virtual ~wxMemoryDCBase() { }
29
30 // select the given bitmap to draw on it
31 void SelectObject(wxBitmap& bmp)
32 {
33 // make sure that the given wxBitmap is not sharing its data with other
34 // wxBitmap instances as its contents will be modified by any drawing
35 // operation done on this DC
36 if (bmp.IsOk())
37 bmp.UnShare();
38
39 DoSelect(bmp);
40 }
41
42 // select the given bitmap for read-only
43 virtual void SelectObjectAsSource(const wxBitmap& bmp)
44 {
45 DoSelect(bmp);
46 }
47
48 virtual void DoSelect(const wxBitmap& bmp) = 0;
49 };
50
51 #if defined(__WXPALMOS__)
52 #include "wx/palmos/dcmemory.h"
53 #elif defined(__WXMSW__)
54 #include "wx/msw/dcmemory.h"
55 #elif defined(__WXMOTIF__)
56 #include "wx/motif/dcmemory.h"
57 #elif defined(__WXGTK20__)
58 #include "wx/gtk/dcmemory.h"
59 #elif defined(__WXGTK__)
60 #include "wx/gtk1/dcmemory.h"
61 #elif defined(__WXX11__)
62 #include "wx/x11/dcmemory.h"
63 #elif defined(__WXMGL__)
64 #include "wx/mgl/dcmemory.h"
65 #elif defined(__WXDFB__)
66 #include "wx/dfb/dcmemory.h"
67 #elif defined(__WXMAC__)
68 #include "wx/mac/dcmemory.h"
69 #elif defined(__WXCOCOA__)
70 #include "wx/cocoa/dcmemory.h"
71 #elif defined(__WXPM__)
72 #include "wx/os2/dcmemory.h"
73 #endif
74
75 #endif
76 // _WX_DCMEMORY_H_BASE_