]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dfb/dcclient.h
support SDK < 10.6, fixes #14902
[wxWidgets.git] / include / wx / dfb / dcclient.h
index 5f1d7672e21148572fe7c8eb6d9d1ee18fa4c97d..7559eb1b56726e561eaa24e7aa7fadce756a520b 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/dfb/dcclient.h
-// Purpose:     wxWindowDC, wxClientDC and wxPaintDC
+// Purpose:     wxWindowDCImpl, wxClientDCImpl and wxPaintDCImpl
 // Author:      Vaclav Slavik
 // Created:     2006-08-10
 // RCS-ID:      $Id$
 #ifndef _WX_DFB_DCCLIENT_H_
 #define _WX_DFB_DCCLIENT_H_
 
-#include "wx/dc.h"
+#include "wx/dfb/dc.h"
 
-class WXDLLIMPEXP_CORE wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxWindow;
 
 //-----------------------------------------------------------------------------
-// wxWindowDC
+// wxWindowDCImpl
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxWindowDC : public wxDC
+class WXDLLIMPEXP_CORE wxWindowDCImpl : public wxDFBDCImpl
 {
 public:
-    wxWindowDC() {}
-    wxWindowDC(wxWindow *win);
+    wxWindowDCImpl(wxDC *owner) : wxDFBDCImpl(owner), m_shouldFlip(false) { }
+    wxWindowDCImpl(wxDC *owner, wxWindow *win);
+    virtual ~wxWindowDCImpl();
 
 protected:
-    void InitForWin(wxWindow *win);
+    // initializes the DC for painting on given window; if rect!=NULL, then
+    // for painting only on the given region of the window
+    void InitForWin(wxWindow *win, const wxRect *rect);
 
-    DECLARE_DYNAMIC_CLASS(wxWindowDC)
-    DECLARE_NO_COPY_CLASS(wxWindowDC)
-};
+private:
+    wxRect    m_winRect; // rectangle of the window being painted
 
-//-----------------------------------------------------------------------------
-// base class for wxClientDC and wxPaintDC
-//-----------------------------------------------------------------------------
+    bool m_shouldFlip; // flip the surface when done?
 
-class WXDLLIMPEXP_CORE wxClientDCBase : public wxWindowDC
-{
-public:
-    wxClientDCBase() {}
-    wxClientDCBase(wxWindow *win);
+    friend class wxOverlayImpl; // for m_shouldFlip;
+
+    DECLARE_DYNAMIC_CLASS(wxWindowDCImpl)
+    wxDECLARE_NO_COPY_CLASS(wxWindowDCImpl);
 };
 
 //-----------------------------------------------------------------------------
-// wxClientDC
+// wxClientDCImpl
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxClientDC : public wxClientDCBase
+class WXDLLIMPEXP_CORE wxClientDCImpl : public wxWindowDCImpl
 {
 public:
-    wxClientDC() {}
-    wxClientDC(wxWindow *win) : wxClientDCBase(win) {}
-    ~wxClientDC();
+    wxClientDCImpl(wxDC *owner) : wxWindowDCImpl(owner) { }
+    wxClientDCImpl(wxDC *owner, wxWindow *win);
 
-    DECLARE_DYNAMIC_CLASS(wxClientDC)
-    DECLARE_NO_COPY_CLASS(wxClientDC)
+    DECLARE_DYNAMIC_CLASS(wxClientDCImpl)
+    wxDECLARE_NO_COPY_CLASS(wxClientDCImpl);
 };
 
 
 //-----------------------------------------------------------------------------
-// wxPaintDC
+// wxPaintDCImpl
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxPaintDC : public wxClientDCBase
+class WXDLLIMPEXP_CORE wxPaintDCImpl : public wxClientDCImpl
 {
 public:
-    wxPaintDC() {}
-    wxPaintDC(wxWindow *win) : wxClientDCBase(win) {}
-    ~wxPaintDC();
+    wxPaintDCImpl(wxDC *owner) : wxClientDCImpl(owner) { }
+    wxPaintDCImpl(wxDC *owner, wxWindow *win) : wxClientDCImpl(owner, win) { }
 
-    DECLARE_DYNAMIC_CLASS(wxPaintDC)
-    DECLARE_NO_COPY_CLASS(wxPaintDC)
+    DECLARE_DYNAMIC_CLASS(wxPaintDCImpl)
+    wxDECLARE_NO_COPY_CLASS(wxPaintDCImpl);
 };
 
 #endif // _WX_DFB_DCCLIENT_H_