]> git.saurik.com Git - wxWidgets.git/blame - src/generic/panelg.cpp
Fixed MSW/Univ compilation of toplevel.cpp.
[wxWidgets.git] / src / generic / panelg.cpp
CommitLineData
cd95f7e6
VZ
1///////////////////////////////////////////////////////////////////////////////
2// Name: src/generic/panelg.cpp
3// Purpose: Generic wxPanel implementation.
4// Author: Vadim Zeitlin
5// Created: 2011-03-20
6// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
7// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
8// Licence: wxWindows licence
9///////////////////////////////////////////////////////////////////////////////
10
11// ============================================================================
12// declarations
13// ============================================================================
14
15// ----------------------------------------------------------------------------
16// headers
17// ----------------------------------------------------------------------------
18
19// for compilers that support precompilation, includes "wx.h".
20#include "wx/wxprec.h"
21
22#ifdef __BORLANDC__
23 #pragma hdrstop
24#endif
25
cd95f7e6
VZ
26#ifndef WX_PRECOMP
27 #include "wx/dc.h"
28 #include "wx/panel.h"
29#endif // WX_PRECOMP
30
035fa7f7
VZ
31#ifdef wxHAS_GENERIC_PANEL
32
cd95f7e6
VZ
33// ============================================================================
34// implementation
35// ============================================================================
36
37void wxPanel::DoSetBackgroundBitmap(const wxBitmap& bmp)
38{
39 m_bitmapBg = bmp;
40
41 if ( m_bitmapBg.IsOk() )
42 {
43 Connect(wxEVT_ERASE_BACKGROUND,
44 wxEraseEventHandler(wxPanel::OnEraseBackground));
45 }
46 else
47 {
48 Disconnect(wxEVT_ERASE_BACKGROUND,
49 wxEraseEventHandler(wxPanel::OnEraseBackground));
50 }
51}
52
53void wxPanel::OnEraseBackground(wxEraseEvent& event)
54{
55 wxDC& dc = *event.GetDC();
56
57 const wxSize clientSize = GetClientSize();
58 const wxSize bitmapSize = m_bitmapBg.GetSize();
59
60 for ( int x = 0; x < clientSize.x; x += bitmapSize.x )
61 {
62 for ( int y = 0; y < clientSize.y; y += bitmapSize.y )
63 {
64 dc.DrawBitmap(m_bitmapBg, x, y);
65 }
66 }
67}
68
69#endif // wxHAS_GENERIC_PANEL