]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dfb/dcclient.h
Added a wxRichTextCtrl-specific caret implementation in case of need
[wxWidgets.git] / include / wx / dfb / dcclient.h
index a4006f9cc0d490cb192b6a9c83d90f2520a00ce2..9916742c741ed08251f2aa24db2bc7077588b7a0 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() : m_win(NULL) {}
-    wxWindowDC(wxWindow *win);
-    virtual ~wxWindowDC();
+    wxWindowDCImpl(wxDC *owner) : wxDFBDCImpl(owner), m_shouldFlip(false) { }
+    wxWindowDCImpl(wxDC *owner, wxWindow *win);
+    virtual ~wxWindowDCImpl();
+
+    virtual wxWindow *GetWindow() const { return m_win; }
 
 protected:
     // initializes the DC for painting on given window; if rect!=NULL, then
@@ -32,39 +34,44 @@ protected:
     void InitForWin(wxWindow *win, const wxRect *rect);
 
 private:
-    wxWindow *m_win; // the window the DC paints on
+    wxWindow *m_win;
+    wxRect    m_winRect; // rectangle of the window being painted
+
+    bool m_shouldFlip; // flip the surface when done?
+
+    friend class wxOverlayImpl; // for m_shouldFlip;
 
-    DECLARE_DYNAMIC_CLASS(wxWindowDC)
-    DECLARE_NO_COPY_CLASS(wxWindowDC)
+    DECLARE_DYNAMIC_CLASS(wxWindowDCImpl)
+    DECLARE_NO_COPY_CLASS(wxWindowDCImpl)
 };
 
 //-----------------------------------------------------------------------------
-// wxClientDC
+// wxClientDCImpl
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxClientDC : public wxWindowDC
+class WXDLLIMPEXP_CORE wxClientDCImpl : public wxWindowDCImpl
 {
 public:
-    wxClientDC() {}
-    wxClientDC(wxWindow *win);
+    wxClientDCImpl(wxDC *owner) : wxWindowDCImpl(owner) { }
+    wxClientDCImpl(wxDC *owner, wxWindow *win);
 
-    DECLARE_DYNAMIC_CLASS(wxClientDC)
-    DECLARE_NO_COPY_CLASS(wxClientDC)
+    DECLARE_DYNAMIC_CLASS(wxClientDCImpl)
+    DECLARE_NO_COPY_CLASS(wxClientDCImpl)
 };
 
 
 //-----------------------------------------------------------------------------
-// wxPaintDC
+// wxPaintDCImpl
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxPaintDC : public wxClientDC
+class WXDLLIMPEXP_CORE wxPaintDCImpl : public wxClientDCImpl
 {
 public:
-    wxPaintDC() {}
-    wxPaintDC(wxWindow *win) : wxClientDC(win) {}
+    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)
+    DECLARE_NO_COPY_CLASS(wxPaintDCImpl)
 };
 
 #endif // _WX_DFB_DCCLIENT_H_