]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/panel.cpp
better ownership handling
[wxWidgets.git] / src / msw / panel.cpp
index 65a25144c89448ecc46ec048fd3bdd74e7adcdfb..e5b57eeb3af095b1115568f02064ac8a3f4b5025 100644 (file)
@@ -24,6 +24,8 @@
 #endif
 
 #ifndef WX_PRECOMP
+    #include "wx/bitmap.h"
+    #include "wx/brush.h"
     #include "wx/panel.h"
 #endif // WX_PRECOMP
 
@@ -44,3 +46,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();
+}