]> git.saurik.com Git - wxWidgets.git/blob - include/wx/dcmemory.h
Add factory functions for use with future unit tests.
[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/bitmap.h"
16
17 // NOTE: different native implementations of wxMemoryDC will derive from
18 // different wxDC classes (wxPaintDC, wxWindowDC, etc), so that
19 // we cannot derive wxMemoryDCBase from wxDC and then use it as the
20 // only base class for native impl of wxMemoryDC...
21 class WXDLLEXPORT wxMemoryDCBase
22 {
23 public:
24 wxMemoryDCBase() { }
25
26 // avoid warnings about having virtual functions but non virtual dtor
27 virtual ~wxMemoryDCBase() { }
28
29 // select the given bitmap to draw on it
30 void SelectObject(wxBitmap& bmp)
31 {
32 // make sure that the given wxBitmap is not sharing its data with other
33 // wxBitmap instances as its contents will be modified by any drawing
34 // operation done on this DC
35 if (bmp.IsOk())
36 bmp.UnShare();
37
38 DoSelect(bmp);
39 }
40
41 // select the given bitmap for read-only
42 virtual void SelectObjectAsSource(const wxBitmap& bmp)
43 {
44 DoSelect(bmp);
45 }
46
47 protected:
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_