X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/33611ebbd99217ef90f1178eed37e30385c121de..cd560c961a09a8ae80b9c32856e195ed784cc547:/samples/erase/erase.cpp diff --git a/samples/erase/erase.cpp b/samples/erase/erase.cpp index 8162f96f6f..ec15d7978e 100644 --- a/samples/erase/erase.cpp +++ b/samples/erase/erase.cpp @@ -18,8 +18,8 @@ // ---------------------------------------------------------------------------- #ifdef __GNUG__ - #pragma implementation "minimal.cpp" - #pragma interface "minimal.cpp" + #pragma implementation "erase.cpp" + #pragma interface "erase.cpp" #endif // For compilers that support precompilation, includes "wx/wx.h". @@ -39,7 +39,7 @@ // resources // ---------------------------------------------------------------------------- // the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) +#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__) #include "mondrian.xpm" #endif @@ -157,10 +157,10 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { wxString msg; - msg.Printf( _T("This is the about dialog of minimal sample.\n") + msg.Printf( _T("This is the about dialog of the Erase sample.\n") _T("Welcome to %s"), wxVERSION_STRING); - wxMessageBox(msg, "About Minimal", wxOK | wxICON_INFORMATION, this); + wxMessageBox(msg, "About Erase", wxOK | wxICON_INFORMATION, this); } @@ -171,7 +171,7 @@ 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 ); } @@ -181,8 +181,48 @@ void MyCanvas::OnPaint( wxPaintEvent &event ) wxPaintDC dc(this); PrepareDC( dc ); +#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 + + dc.SetPen( *wxWHITE_PEN ); + for (int i = 0; i < 20; i += 2) + dc.DrawLine( i,i, i+100,i ); + + dc.SetPen( *wxWHITE_PEN ); + for (int 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 ); + dc.SetClippingRegion( region ); + dc.SetBrush( *wxRED_BRUSH ); - dc.DrawRectangle( 100, 100, 300, 500 ); + dc.DrawRectangle( 100, 100, 200, 200 ); + + dc.DestroyClippingRegion(); + + dc.SetPen( *wxTRANSPARENT_PEN ); + + wxRegion strip( 110, 200, 30, 1 ); + wxRegionIterator it( strip ); + while (it) + { + dc.DrawRectangle( it.GetX(), it.GetY(), it.GetWidth(), it.GetHeight() ); + it ++; + } } void MyCanvas::OnEraseBackground( wxEraseEvent &event )