wxWidgets/interface/wx/custombgwin.h
Vadim Zeitlin bbcf2821a1 Move SetBackgroundBitmap() from wxPanel to new wxCustomBackgroundWindow.
wxCustomBackgroundWindow is a new class allowing to set a custom bitmap for
the background of any window. The relevant code was mostly moved from wxPanel
to which it was added only recently (before 2.9.2) making it unnecessary to
preserve compatibility.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-11 17:07:43 +00:00

68 lines
2.4 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: wx/custombgwin.h
// Purpose: Documentation of wxCustomBackgroundWindow.
// Author: Vadim Zeitlin
// Created: 2011-10-10
// RCS-ID: $Id$
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
A helper class making it possible to use custom background for any window.
wxWindow itself only provides SetBackgroundColour() method taking a (solid)
wxColour. This class extends it by allowing to use custom bitmap
backgrounds with any window, provided that you inherit from it. Notice that
the usual rule of not interfering with event handling or painting of native
controls still applies, so you shouldn't try to use custom backgrounds with
classes such as wxButton (even if this might work on some platforms, it's
not guaranteed to work in general). But you can use this class in
conjunction with wxWindow, wxPanel, wxFrame and other similar classes, e.g.
the erase sample shows how to use it with wxScrolledWindow:
@code
#include "wx/custombgwin.h"
class MyCanvas : public wxCustomBackgroundWindow<wxScrolledWindow>
{
public:
MyCanvas(wxWindow* parent)
{
// Notice that we must explicitly call base class Create()
// instead of using its ctor as wxCustomBackgroundWindow
// doesn't define any non-default ctors.
Create(parent, wxID_ANY);
...
SetBackgroundBitmap(bitmap);
}
};
@endcode
@category{miscwnd}
@since 2.9.3
*/
template <class W>
class wxCustomBackgroundWindow : public W
{
public:
/// Trivial default constructor.
wxCustomBackgroundWindow();
/**
Set the background bitmap for this window.
If @a bmp is a valid bitmap, this bitmap will be tiled over the panel
background and show through any of its transparent children. Passing an
invalid bitmap reverts to the default background appearance.
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);
};