Add wxPanel::SetBackgroundBitmap().

This method provides a simple way to set a background bitmap without defining
an EVT_ERASE_BACKGROUND handler and, more importantly, one that works
correctly in wxMSW for a window with children as it paints the background of
transparent children too.

Add a test of this method to the erase sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-03-20 00:00:49 +00:00
parent cf858bab79
commit cd95f7e65c
19 changed files with 509 additions and 162 deletions

View File

@@ -52,6 +52,18 @@ public:
const wxString& name = wxPanelNameStr);
// Use the given bitmap to tile the background of this panel. This bitmap
// will show through any transparent children.
//
// Notice that you must not prevent the base class EVT_ERASE_BACKGROUND
// handler from running (i.e. not to handle this event yourself) for this
// to work.
void SetBackgroundBitmap(const wxBitmap& bmp)
{
DoSetBackgroundBitmap(bmp);
}
// implementation from now on
// --------------------------
@@ -59,6 +71,9 @@ public:
WX_DECLARE_CONTROL_CONTAINER();
protected:
virtual void DoSetBackgroundBitmap(const wxBitmap& bmp) = 0;
private:
wxDECLARE_EVENT_TABLE();
@@ -70,6 +85,7 @@ private:
#elif defined(__WXMSW__)
#include "wx/msw/panel.h"
#else
#define wxHAS_GENERIC_PANEL
#include "wx/generic/panelg.h"
#endif