X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5b87bd6c0b694fa7634e7a16ed030033ff8e8bdd..773db5dfb386719b34ea90c1885ca1f082717b7f:/src/msw/panel.cpp diff --git a/src/msw/panel.cpp b/src/msw/panel.cpp index 65a25144c8..c502caf9f5 100644 --- a/src/msw/panel.cpp +++ b/src/msw/panel.cpp @@ -24,6 +24,8 @@ #endif #ifndef WX_PRECOMP + #include "wx/bitmap.h" + #include "wx/brush.h" #include "wx/panel.h" #endif // WX_PRECOMP @@ -31,6 +33,11 @@ // implementation // ============================================================================ +wxPanel::~wxPanel() +{ + delete m_backgroundBrush; +} + bool wxPanel::HasTransparentBackground() { for ( wxWindow *win = GetParent(); win; win = win->GetParent() ) @@ -44,3 +51,22 @@ bool wxPanel::HasTransparentBackground() return false; } + +void wxPanel::DoSetBackgroundBitmap(const wxBitmap& bmp) +{ + delete m_backgroundBrush; + m_backgroundBrush = bmp.IsOk() ? new wxBrush(bmp) : NULL; + + // Our transparent children should use our background if we have it, + // otherwise try to restore m_inheritBgCol to some reasonable value: true + // if we also have non-default background colour or false otherwise. + m_inheritBgCol = bmp.IsOk() || UseBgCol(); +} + +WXHBRUSH wxPanel::MSWGetCustomBgBrush() +{ + if ( m_backgroundBrush ) + return (WXHBRUSH)m_backgroundBrush->GetResourceHandle(); + + return wxPanelBase::MSWGetCustomBgBrush(); +}