// Author: Ron Lee <ron@debian.org>
// Modified by: Vadim Zeitlin (refactored, added bg preservation)
// Created: 16/03/02
-// RCS-ID: $Id$
// Copyright: (c) Ron Lee
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// is private style and not returned by GetStyle.
#define wxBUFFER_USES_SHARED_BUFFER 0x04
-class WXDLLEXPORT wxBufferedDC : public wxMemoryDC
+class WXDLLIMPEXP_CORE wxBufferedDC : public wxMemoryDC
{
public:
// Default ctor, must subsequently call Init for two stage construction.
// common part of Init()s
void InitCommon(wxDC *dc, int style)
{
- wxASSERT_MSG( !m_dc, _T("wxBufferedDC already initialised") );
+ wxASSERT_MSG( !m_dc, wxT("wxBufferedDC already initialised") );
m_dc = dc;
m_style = style;
-
- // inherit the same layout direction as the original DC
- if (dc && dc->IsOk())
- SetLayoutDirection(dc->GetLayoutDirection());
}
// check that the bitmap is valid and use it
// the buffering style
int m_style;
+ wxSize m_area;
+
DECLARE_DYNAMIC_CLASS(wxBufferedDC)
- DECLARE_NO_COPY_CLASS(wxBufferedDC)
+ wxDECLARE_NO_COPY_CLASS(wxBufferedDC);
};
// Creates a double buffered wxPaintDC, optionally allowing the
// user to specify their own buffer to use.
-class WXDLLEXPORT wxBufferedPaintDC : public wxBufferedDC
+class WXDLLIMPEXP_CORE wxBufferedPaintDC : public wxBufferedDC
{
public:
// If no bitmap is supplied by the user, a temporary one will be created.
wxPaintDC m_paintdc;
DECLARE_ABSTRACT_CLASS(wxBufferedPaintDC)
- DECLARE_NO_COPY_CLASS(wxBufferedPaintDC)
+ wxDECLARE_NO_COPY_CLASS(wxBufferedPaintDC);
};
#define wxAutoBufferedPaintDCBase wxBufferedPaintDC
#endif
-
-#ifdef __WXDEBUG__
-
-class wxAutoBufferedPaintDC : public wxAutoBufferedPaintDCBase
+class WXDLLIMPEXP_CORE wxAutoBufferedPaintDC : public wxAutoBufferedPaintDCBase
{
public:
wxAutoBufferedPaintDC(wxWindow* win)
: wxAutoBufferedPaintDCBase(win)
{
- TestWinStyle(win);
+ wxASSERT_MSG( win->GetBackgroundStyle() == wxBG_STYLE_PAINT,
+ "You need to call SetBackgroundStyle(wxBG_STYLE_PAINT) in ctor, "
+ "and also, if needed, paint the background in wxEVT_PAINT handler."
+ );
}
virtual ~wxAutoBufferedPaintDC() { }
private:
-
- void TestWinStyle(wxWindow* win)
- {
- // Help the user to get the double-buffering working properly.
- wxASSERT_MSG( win->GetBackgroundStyle() == wxBG_STYLE_CUSTOM,
- wxT("In constructor, you need to call SetBackgroundStyle(wxBG_STYLE_CUSTOM), ")
- wxT("and also, if needed, paint the background manually in the paint event handler."));
- }
-
- DECLARE_NO_COPY_CLASS(wxAutoBufferedPaintDC)
+ wxDECLARE_NO_COPY_CLASS(wxAutoBufferedPaintDC);
};
-#else // !__WXDEBUG__
-
-// In release builds, just use typedef
-typedef wxAutoBufferedPaintDCBase wxAutoBufferedPaintDC;
-
-#endif
// Check if the window is natively double buffered and will return a wxPaintDC