// 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
/////////////////////////////////////////////////////////////////////////////
// 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)
wxDECLARE_NO_COPY_CLASS(wxBufferedDC);
};
#define wxAutoBufferedPaintDCBase wxBufferedPaintDC
#endif
-
-#ifdef __WXDEBUG__
-
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."));
- }
-
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