X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/512cfcc34118a5da1b14c8cbaae1690fd4b23a4b..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/msw/dcclient.h diff --git a/include/wx/msw/dcclient.h b/include/wx/msw/dcclient.h index 4de0cc398d..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,22 +19,14 @@ #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 // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxWindowDCImpl : public wxMSWDCImpl +class WXDLLIMPEXP_CORE wxWindowDCImpl : public wxMSWDCImpl { public: // default ctor @@ -50,10 +42,10 @@ protected: void InitDC(); DECLARE_CLASS(wxWindowDCImpl) - DECLARE_NO_COPY_CLASS(wxWindowDCImpl) + wxDECLARE_NO_COPY_CLASS(wxWindowDCImpl); }; -class WXDLLEXPORT wxClientDCImpl : public wxWindowDCImpl +class WXDLLIMPEXP_CORE wxClientDCImpl : public wxWindowDCImpl { public: // default ctor @@ -70,10 +62,10 @@ protected: void InitDC(); DECLARE_CLASS(wxClientDCImpl) - DECLARE_NO_COPY_CLASS(wxClientDCImpl) + wxDECLARE_NO_COPY_CLASS(wxClientDCImpl); }; -class WXDLLEXPORT wxPaintDCImpl : public wxClientDCImpl +class WXDLLIMPEXP_CORE wxPaintDCImpl : public wxClientDCImpl { public: wxPaintDCImpl( wxDC *owner ); @@ -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); }; /* @@ -102,13 +96,13 @@ protected: * message. It is used in HandlePaint and need not be used by an application. */ -class WXDLLEXPORT wxPaintDCEx : public wxPaintDC +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