]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/panel.cpp
Fix typo in last commit
[wxWidgets.git] / src / msw / panel.cpp
index 65a25144c89448ecc46ec048fd3bdd74e7adcdfb..be95de10b3ef796b0edcd87ec5484f957a1228ff 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     Implementation of wxMSW-specific wxPanel class.
 // Author:      Vadim Zeitlin
 // Created:     2011-03-18
-// RCS-ID:      $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
+// RCS-ID:      $Id$
 // Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -24,6 +24,8 @@
 #endif
 
 #ifndef WX_PRECOMP
+    #include "wx/bitmap.h"
+    #include "wx/brush.h"
     #include "wx/panel.h"
 #endif // WX_PRECOMP
 
 // 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();
+}