]>
Commit | Line | Data |
---|---|---|
ffecfa5a | 1 | ///////////////////////////////////////////////////////////////////////////// |
e1d63b79 | 2 | // Name: wx/palmos/dcclient.h |
ffecfa5a | 3 | // Purpose: wxClientDC class |
e1d63b79 | 4 | // Author: William Osborne - minimal working wxPalmOS port |
ffecfa5a JS |
5 | // Modified by: |
6 | // Created: 10/13/04 | |
e1d63b79 | 7 | // RCS-ID: $Id$ |
ffecfa5a JS |
8 | // Copyright: (c) William Osborne |
9 | // Licence: wxWindows licence | |
10 | ///////////////////////////////////////////////////////////////////////////// | |
11 | ||
12 | #ifndef _WX_DCCLIENT_H_ | |
13 | #define _WX_DCCLIENT_H_ | |
14 | ||
15 | // ---------------------------------------------------------------------------- | |
16 | // headers | |
17 | // ---------------------------------------------------------------------------- | |
18 | ||
ffecfa5a | 19 | #include "wx/dc.h" |
e2fc40b4 VZ |
20 | #include "wx/palmos/dc.h" |
21 | #include "wx/dcclient.h" | |
ffecfa5a JS |
22 | #include "wx/dynarray.h" |
23 | ||
24 | // ---------------------------------------------------------------------------- | |
25 | // array types | |
26 | // ---------------------------------------------------------------------------- | |
27 | ||
28 | // this one if used by wxPaintDC only | |
b5dbe15d | 29 | struct WXDLLIMPEXP_FWD_CORE wxPaintDCInfo; |
ffecfa5a JS |
30 | |
31 | WX_DECLARE_EXPORTED_OBJARRAY(wxPaintDCInfo, wxArrayDCInfo); | |
32 | ||
33 | // ---------------------------------------------------------------------------- | |
34 | // DC classes | |
35 | // ---------------------------------------------------------------------------- | |
36 | ||
e2fc40b4 | 37 | class WXDLLEXPORT wxWindowDCImpl : public wxPalmDCImpl |
ffecfa5a JS |
38 | { |
39 | public: | |
40 | // default ctor | |
e2fc40b4 | 41 | wxWindowDCImpl( wxDC *owner ); |
ffecfa5a JS |
42 | |
43 | // Create a DC corresponding to the whole window | |
e2fc40b4 VZ |
44 | wxWindowDCImpl( wxDC *owner, wxWindow *win ); |
45 | ||
46 | virtual void DoGetSize(int *width, int *height) const; | |
ffecfa5a JS |
47 | |
48 | protected: | |
3103e8a9 | 49 | // initialize the newly created DC |
ffecfa5a JS |
50 | void InitDC(); |
51 | ||
e2fc40b4 VZ |
52 | DECLARE_CLASS(wxWindowDCImpl) |
53 | DECLARE_NO_COPY_CLASS(wxWindowDCImpl) | |
ffecfa5a JS |
54 | }; |
55 | ||
e2fc40b4 | 56 | class WXDLLEXPORT wxClientDCImpl : public wxWindowDCImpl |
ffecfa5a JS |
57 | { |
58 | public: | |
59 | // default ctor | |
e2fc40b4 | 60 | wxClientDCImpl( wxDC *owner ); |
ffecfa5a JS |
61 | |
62 | // Create a DC corresponding to the client area of the window | |
e2fc40b4 | 63 | wxClientDCImpl( wxDC *owner, wxWindow *win ); |
ffecfa5a | 64 | |
e2fc40b4 VZ |
65 | virtual ~wxClientDCImpl(); |
66 | ||
67 | virtual void DoGetSize(int *width, int *height) const; | |
ffecfa5a JS |
68 | |
69 | protected: | |
70 | void InitDC(); | |
71 | ||
e2fc40b4 VZ |
72 | DECLARE_CLASS(wxClientDCImpl) |
73 | DECLARE_NO_COPY_CLASS(wxClientDCImpl) | |
ffecfa5a JS |
74 | }; |
75 | ||
e2fc40b4 | 76 | class WXDLLEXPORT wxPaintDCImpl : public wxClientDCImpl |
ffecfa5a JS |
77 | { |
78 | public: | |
e2fc40b4 | 79 | wxPaintDCImpl( wxDC *owner ); |
ffecfa5a JS |
80 | |
81 | // Create a DC corresponding for painting the window in OnPaint() | |
e2fc40b4 | 82 | wxPaintDCImpl( wxDC *owner, wxWindow *win ); |
ffecfa5a | 83 | |
e2fc40b4 | 84 | virtual ~wxPaintDCImpl(); |
ffecfa5a JS |
85 | |
86 | // find the entry for this DC in the cache (keyed by the window) | |
87 | static WXHDC FindDCInCache(wxWindow* win); | |
88 | ||
89 | protected: | |
90 | static wxArrayDCInfo ms_cache; | |
91 | ||
92 | // find the entry for this DC in the cache (keyed by the window) | |
93 | wxPaintDCInfo *FindInCache(size_t *index = NULL) const; | |
94 | ||
e2fc40b4 VZ |
95 | DECLARE_CLASS(wxPaintDCImpl) |
96 | DECLARE_NO_COPY_CLASS(wxPaintDCImpl) | |
ffecfa5a JS |
97 | }; |
98 | ||
99 | #endif | |
100 | // _WX_DCCLIENT_H_ |