X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0b822969a677939811d9fb966177031fb5fc625b..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/msw/dcclient.h diff --git a/include/wx/msw/dcclient.h b/include/wx/msw/dcclient.h index eed5e21e59..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 @@ -50,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 @@ -70,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 @@ -86,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); }; /* @@ -106,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