1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/dfb/dcclient.h
3// Purpose:     wxWindowDC, wxClientDC and wxPaintDC
4// Author:      Vaclav Slavik
5// Created:     2006-08-10
6// RCS-ID:      $Id: dcclient.h 42340 2006-10-24 12:29:14Z VS $
7// Copyright:   (c) 2006 REA Elektronik GmbH
8// Licence:     wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#ifndef _WX_DFB_DCCLIENT_H_
12#define _WX_DFB_DCCLIENT_H_
13
14#include "wx/dc.h"
15
16class WXDLLIMPEXP_CORE wxWindow;
17
18//-----------------------------------------------------------------------------
19// wxWindowDC
20//-----------------------------------------------------------------------------
21
22class WXDLLIMPEXP_CORE wxWindowDC : public wxDC
23{
24public:
25    wxWindowDC() : m_shouldFlip(false) {}
26    wxWindowDC(wxWindow *win);
27    virtual ~wxWindowDC();
28
29    virtual wxWindow *GetWindow() const { return m_win; }
30
31protected:
32    // initializes the DC for painting on given window; if rect!=NULL, then
33    // for painting only on the given region of the window
34    void InitForWin(wxWindow *win, const wxRect *rect);
35
36private:
37    wxWindow *m_win;
38    wxRect    m_winRect; // rectangle of the window being painted
39
40    bool m_shouldFlip; // flip the surface when done?
41
42    friend class wxOverlayImpl; // for m_shouldFlip;
43
44    DECLARE_DYNAMIC_CLASS(wxWindowDC)
45    DECLARE_NO_COPY_CLASS(wxWindowDC)
46};
47
48//-----------------------------------------------------------------------------
49// wxClientDC
50//-----------------------------------------------------------------------------
51
52class WXDLLIMPEXP_CORE wxClientDC : public wxWindowDC
53{
54public:
55    wxClientDC() {}
56    wxClientDC(wxWindow *win);
57
58    DECLARE_DYNAMIC_CLASS(wxClientDC)
59    DECLARE_NO_COPY_CLASS(wxClientDC)
60};
61
62
63//-----------------------------------------------------------------------------
64// wxPaintDC
65//-----------------------------------------------------------------------------
66
67class WXDLLIMPEXP_CORE wxPaintDC : public wxClientDC
68{
69public:
70    wxPaintDC() {}
71    wxPaintDC(wxWindow *win) : wxClientDC(win) {}
72
73    DECLARE_DYNAMIC_CLASS(wxPaintDC)
74    DECLARE_NO_COPY_CLASS(wxPaintDC)
75};
76
77#endif // _WX_DFB_DCCLIENT_H_
78