1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxClientDC class
4 // Author: David Webster
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_DCCLIENT_H_
13 #define _WX_DCCLIENT_H_
15 // ----------------------------------------------------------------------------
17 // ----------------------------------------------------------------------------
20 #include "wx/os2/dc.h"
21 #include "wx/dcclient.h"
22 #include "wx/dynarray.h"
24 // ----------------------------------------------------------------------------
26 // ----------------------------------------------------------------------------
28 // this one if used by wxPaintDC only
29 struct WXDLLIMPEXP_FWD_CORE wxPaintDCInfo
;
31 WX_DECLARE_EXPORTED_OBJARRAY(wxPaintDCInfo
, wxArrayDCInfo
);
33 // ----------------------------------------------------------------------------
35 // ----------------------------------------------------------------------------
37 class WXDLLIMPEXP_CORE wxWindowDCImpl
: public wxPMDCImpl
41 wxWindowDCImpl( wxDC
*owner
);
43 // Create a DC corresponding to the whole window
44 wxWindowDCImpl( wxDC
*owner
, wxWindow
*pWin
);
46 virtual void DoGetSize(int *pWidth
, int *pHeight
) const;
49 // initialize the newly created DC
54 DECLARE_CLASS(wxWindowDCImpl
)
55 wxDECLARE_NO_COPY_CLASS(wxWindowDCImpl
);
56 }; // end of CLASS wxWindowDC
58 class WXDLLIMPEXP_CORE wxClientDCImpl
: public wxWindowDCImpl
62 wxClientDCImpl( wxDC
*owner
);
64 // Create a DC corresponding to the client area of the window
65 wxClientDCImpl( wxDC
*owner
, wxWindow
*pWin
);
67 virtual ~wxClientDCImpl();
69 virtual void DoGetSize(int *pWidth
, int *pHeight
) const;
75 DECLARE_CLASS(wxClientDCImpl
)
76 wxDECLARE_NO_COPY_CLASS(wxClientDCImpl
);
77 }; // end of CLASS wxClientDC
79 class WXDLLIMPEXP_CORE wxPaintDCImpl
: public wxClientDCImpl
82 wxPaintDCImpl( wxDC
*owner
);
84 // Create a DC corresponding for painting the window in OnPaint()
85 wxPaintDCImpl( wxDC
*owner
, wxWindow
*pWin
);
87 virtual ~wxPaintDCImpl();
89 // find the entry for this DC in the cache (keyed by the window)
90 static WXHDC
FindDCInCache(wxWindow
* pWin
);
93 static wxArrayDCInfo ms_cache
;
95 // find the entry for this DC in the cache (keyed by the window)
96 wxPaintDCInfo
* FindInCache(size_t* pIndex
= NULL
) const;
98 DECLARE_CLASS(wxPaintDCImpl
)
99 wxDECLARE_NO_COPY_CLASS(wxPaintDCImpl
);
100 }; // end of wxPaintDC