class WXDLLIMPEXP_CORE wxWindowDC : public wxDC
{
public:
- wxWindowDC() {}
+ wxWindowDC() : m_shouldFlip(false) {}
wxWindowDC(wxWindow *win);
+ virtual ~wxWindowDC();
+
+ virtual wxWindow *GetWindow() const { return m_win; }
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:
+ wxWindow *m_win;
+ 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(wxWindowDC)
+ DECLARE_NO_COPY_CLASS(wxWindowDC)
};
//-----------------------------------------------------------------------------
// wxClientDC
//-----------------------------------------------------------------------------
-class WXDLLIMPEXP_CORE wxClientDC : public wxClientDCBase
+class WXDLLIMPEXP_CORE wxClientDC : public wxWindowDC
{
public:
wxClientDC() {}
- wxClientDC(wxWindow *win) : wxClientDCBase(win) {}
- ~wxClientDC();
+ wxClientDC(wxWindow *win);
DECLARE_DYNAMIC_CLASS(wxClientDC)
DECLARE_NO_COPY_CLASS(wxClientDC)
// wxPaintDC
//-----------------------------------------------------------------------------
-class WXDLLIMPEXP_CORE wxPaintDC : public wxClientDCBase
+class WXDLLIMPEXP_CORE wxPaintDC : public wxClientDC
{
public:
wxPaintDC() {}
- wxPaintDC(wxWindow *win) : wxClientDCBase(win) {}
- ~wxPaintDC();
+ wxPaintDC(wxWindow *win) : wxClientDC(win) {}
DECLARE_DYNAMIC_CLASS(wxPaintDC)
DECLARE_NO_COPY_CLASS(wxPaintDC)