| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/generic/custombgwin.h
 
- // Purpose:     Generic implementation of wxCustomBackgroundWindow.
 
- // Author:      Vadim Zeitlin
 
- // Created:     2011-10-10
 
- // Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_GENERIC_CUSTOMBGWIN_H_
 
- #define _WX_GENERIC_CUSTOMBGWIN_H_
 
- #include "wx/bitmap.h"
 
- // A helper to avoid template bloat: this class contains all type-independent
 
- // code of wxCustomBackgroundWindow<> below.
 
- class wxCustomBackgroundWindowGenericBase : public wxCustomBackgroundWindowBase
 
- {
 
- public:
 
-     wxCustomBackgroundWindowGenericBase() { }
 
- protected:
 
-     void DoEraseBackground(wxEraseEvent& event, wxWindow* win)
 
-     {
 
-         wxDC& dc = *event.GetDC();
 
-         const wxSize clientSize = win->GetClientSize();
 
-         const wxSize bitmapSize = m_bitmapBg.GetSize();
 
-         for ( int x = 0; x < clientSize.x; x += bitmapSize.x )
 
-         {
 
-             for ( int y = 0; y < clientSize.y; y += bitmapSize.y )
 
-             {
 
-                 dc.DrawBitmap(m_bitmapBg, x, y);
 
-             }
 
-         }
 
-     }
 
-     // The bitmap used for painting the background if valid.
 
-     wxBitmap m_bitmapBg;
 
-     wxDECLARE_NO_COPY_CLASS(wxCustomBackgroundWindowGenericBase);
 
- };
 
- // ----------------------------------------------------------------------------
 
- // wxCustomBackgroundWindow
 
- // ----------------------------------------------------------------------------
 
- template <class W>
 
- class wxCustomBackgroundWindow : public W,
 
-                                  public wxCustomBackgroundWindowGenericBase
 
- {
 
- public:
 
-     typedef W BaseWindowClass;
 
-     wxCustomBackgroundWindow() { }
 
- protected:
 
-     virtual void DoSetBackgroundBitmap(const wxBitmap& bmp)
 
-     {
 
-         m_bitmapBg = bmp;
 
-         if ( m_bitmapBg.IsOk() )
 
-         {
 
-             BaseWindowClass::Connect
 
-             (
 
-                 wxEVT_ERASE_BACKGROUND,
 
-                 wxEraseEventHandler(wxCustomBackgroundWindow::OnEraseBackground)
 
-             );
 
-         }
 
-         else
 
-         {
 
-             BaseWindowClass::Disconnect
 
-             (
 
-                 wxEVT_ERASE_BACKGROUND,
 
-                 wxEraseEventHandler(wxCustomBackgroundWindow::OnEraseBackground)
 
-             );
 
-         }
 
-     }
 
- private:
 
-     // Event handler for erasing the background which is only used when we have
 
-     // a valid background bitmap.
 
-     void OnEraseBackground(wxEraseEvent& event)
 
-     {
 
-         DoEraseBackground(event, this);
 
-     }
 
-     wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCustomBackgroundWindow, W);
 
- };
 
- #endif // _WX_GENERIC_CUSTOMBGWIN_H_
 
 
  |