X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b44ffc0e77a8db603b3aba597e4c4df2e2e518f..0ecd03525b34edba886ca83ff724265cd912dbbd:/include/wx/msw/dcclient.h diff --git a/include/wx/msw/dcclient.h b/include/wx/msw/dcclient.h index 5957aa5c22..9fb1cca4e7 100644 --- a/include/wx/msw/dcclient.h +++ b/include/wx/msw/dcclient.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h +// Name: wx/msw/dcclient.h // Purpose: wxClientDC class // Author: Julian Smart // Modified by: @@ -19,16 +19,8 @@ #include "wx/dc.h" #include "wx/msw/dc.h" #include "wx/dcclient.h" -#include "wx/dynarray.h" -// ---------------------------------------------------------------------------- -// array types -// ---------------------------------------------------------------------------- - -// this one if used by wxPaintDC only -struct WXDLLIMPEXP_FWD_CORE wxPaintDCInfo; - -WX_DECLARE_EXPORTED_OBJARRAY(wxPaintDCInfo, wxArrayDCInfo); +class wxPaintDCInfo; // ---------------------------------------------------------------------------- // DC classes @@ -43,10 +35,6 @@ public: // Create a DC corresponding to the whole window wxWindowDCImpl( wxDC *owner, wxWindow *win ); -#if wxUSE_GRAPHICS_CONTEXT - virtual wxGraphicsContext* CreateGraphicsContext(); -#endif - virtual void DoGetSize(int *width, int *height) const; protected: @@ -54,7 +42,7 @@ protected: void InitDC(); DECLARE_CLASS(wxWindowDCImpl) - DECLARE_NO_COPY_CLASS(wxWindowDCImpl) + wxDECLARE_NO_COPY_CLASS(wxWindowDCImpl); }; class WXDLLIMPEXP_CORE wxClientDCImpl : public wxWindowDCImpl @@ -74,7 +62,7 @@ protected: void InitDC(); DECLARE_CLASS(wxClientDCImpl) - DECLARE_NO_COPY_CLASS(wxClientDCImpl) + wxDECLARE_NO_COPY_CLASS(wxClientDCImpl); }; class WXDLLIMPEXP_CORE wxPaintDCImpl : public wxClientDCImpl @@ -90,14 +78,16 @@ public: // find the entry for this DC in the cache (keyed by the window) static WXHDC FindDCInCache(wxWindow* win); -protected: - static wxArrayDCInfo ms_cache; + // This must be called by the code handling WM_PAINT to remove the DC + // cached for this window for the duration of this message processing. + static void EndPaint(wxWindow *win); - // find the entry for this DC in the cache (keyed by the window) - wxPaintDCInfo *FindInCache(size_t *index = NULL) const; +protected: + // Find the DC for this window in the cache, return NULL if not found. + static wxPaintDCInfo *FindInCache(wxWindow* win); DECLARE_CLASS(wxPaintDCImpl) - DECLARE_NO_COPY_CLASS(wxPaintDCImpl) + wxDECLARE_NO_COPY_CLASS(wxPaintDCImpl); }; /* @@ -110,9 +100,9 @@ class WXDLLIMPEXP_CORE wxPaintDCEx : public wxPaintDC { public: wxPaintDCEx(wxWindow *canvas, WXHDC dc); - + DECLARE_CLASS(wxPaintDCEx) - DECLARE_NO_COPY_CLASS(wxPaintDCEx) + wxDECLARE_NO_COPY_CLASS(wxPaintDCEx); }; #endif