X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/887dd52f06a985ec0455e91f4b3d2b091a1b1c7b..6d9022fe3bb50a75b9b5eaf5cf32558e518ba310:/samples/erase/erase.cpp diff --git a/samples/erase/erase.cpp b/samples/erase/erase.cpp index f25a792739..d9f5cfc041 100644 --- a/samples/erase/erase.cpp +++ b/samples/erase/erase.cpp @@ -74,6 +74,8 @@ public: void OnPaint( wxPaintEvent &event ); void OnEraseBackground( wxEraseEvent &event ); + + wxBitmap m_bitmap; private: DECLARE_EVENT_TABLE() @@ -171,9 +173,13 @@ END_EVENT_TABLE() MyCanvas::MyCanvas( MyFrame *parent ) : wxScrolledWindow( parent, -1, wxDefaultPosition, wxDefaultSize, - wxScrolledWindowStyle|wxNO_FULL_REPAINT_ON_RESIZE ) + wxScrolledWindowStyle|wxNO_FULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER ) { SetScrollbars( 10, 10, 40, 100, 0, 0 ); + + m_bitmap = wxBitmap( mondrian_xpm ); + + new wxStaticBitmap( this, -1, m_bitmap, wxPoint(80,20) ); } void MyCanvas::OnPaint( wxPaintEvent &event ) @@ -181,6 +187,35 @@ void MyCanvas::OnPaint( wxPaintEvent &event ) wxPaintDC dc(this); PrepareDC( dc ); + dc.SetBrush( *wxBLACK_BRUSH ); + dc.DrawRectangle( 0,0,200,50 ); + + dc.DrawBitmap( m_bitmap, 10, 20, TRUE ); + +#if 0 + wxRegionIterator upd( GetUpdateRegion() ); + while (upd) + { + wxLogDebug( "Paint: %d %d %d %d", upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() ); + upd ++; + } +#endif + +#if 0 + wxSize size = GetSize(); + wxSize client_size = GetClientSize(); + wxLogDebug( "size %d %d client_size %d %d", size.x, size.y, client_size.x, client_size.y ); +#endif + + int i; + dc.SetPen( *wxWHITE_PEN ); + for (i = 0; i < 20; i += 2) + dc.DrawLine( i,i, i+100,i ); + + dc.SetPen( *wxWHITE_PEN ); + for (i = 200; i < 220; i += 2) + dc.DrawLine( i-200,i, i-100,i ); + wxRegion region( 110, 110, 80, 80 ); wxRegion hole( 130, 130, 40, 1 ); region.Intersect( hole ); @@ -189,7 +224,7 @@ void MyCanvas::OnPaint( wxPaintEvent &event ) dc.SetBrush( *wxRED_BRUSH ); dc.DrawRectangle( 100, 100, 200, 200 ); - dc.DestroyClipingRegion(); + dc.DestroyClippingRegion(); dc.SetPen( *wxTRANSPARENT_PEN );