test wxRegion::Offset()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2002-02-01 00:25:07 +00:00
parent ea45082521
commit 4cbcae1637

View File

@ -161,7 +161,7 @@ protected:
void DrawCircles(wxDC& dc);
void DrawDefault(wxDC& dc);
void DrawRegionsHelper(wxDC& dc, wxCoord x);
void DrawRegionsHelper(wxDC& dc, wxCoord x, bool firstTime);
private:
MyFrame *m_owner;
@ -841,50 +841,53 @@ void MyCanvas::DrawRegions(wxDC& dc)
{
dc.DrawText("You should see a red rect partly covered by a cyan one "
"on the left", 10, 5);
dc.DrawText("and 5 smileys from which 4 are partially clipped on the "
"right (2 copies should be identical)",
dc.DrawText("and 5 smileys from which 4 are partially clipped on the right",
10, 5 + dc.GetCharHeight());
dc.DrawText("The second copy should be identical but right part of it "
"should be offset by 10 pixels.",
10, 5 + 2*dc.GetCharHeight());
DrawRegionsHelper(dc, 10);
DrawRegionsHelper(dc, 350);
DrawRegionsHelper(dc, 10, TRUE);
DrawRegionsHelper(dc, 350, FALSE);
}
void MyCanvas::DrawRegionsHelper(wxDC& dc, wxCoord x)
void MyCanvas::DrawRegionsHelper(wxDC& dc, wxCoord x, bool firstTime)
{
wxCoord y = 100;
dc.DestroyClippingRegion();
dc.SetBrush( *wxWHITE_BRUSH );
dc.SetPen( *wxTRANSPARENT_PEN );
dc.DrawRectangle( x,50,310,310 );
dc.DrawRectangle( x, y, 310, 310 );
dc.SetClippingRegion( x+10,60,100,270 );
dc.SetClippingRegion( x + 10, y + 10, 100, 270 );
dc.SetBrush( *wxRED_BRUSH );
dc.DrawRectangle( x,50,310,310 );
dc.DrawRectangle( x, y, 310, 310 );
dc.SetClippingRegion( x+10,60,100,100 );
dc.SetClippingRegion( x + 10, y + 10, 100, 100 );
dc.SetBrush( *wxCYAN_BRUSH );
dc.DrawRectangle( x,50,310,310 );
dc.DrawRectangle( x, y, 310, 310 );
// when drawing the left half, destroy the clipping region, when drawing
// the right one - leave it
//
// normally it shouldn't make any difference as SetClippingRegion()
// replaces the old clipping region
if ( x < 300 )
dc.DestroyClippingRegion();
dc.SetClippingRegion( x+110,70,100,270 );
dc.DestroyClippingRegion();
wxRegion region(x + 110, y + 20, 100, 270);
if ( !firstTime )
region.Offset(10, 10);
dc.SetClippingRegion(region);
dc.SetBrush( *wxGREY_BRUSH );
dc.DrawRectangle( x,50,310,310 );
dc.DrawRectangle( x, y, 310, 310 );
if (m_smile_bmp.Ok())
{
dc.DrawBitmap( m_smile_bmp, x+150, 200, TRUE );
dc.DrawBitmap( m_smile_bmp, x+130, 60, TRUE );
dc.DrawBitmap( m_smile_bmp, x+130, 330, TRUE );
dc.DrawBitmap( m_smile_bmp, x+100, 120, TRUE );
dc.DrawBitmap( m_smile_bmp, x+200, 120, TRUE );
dc.DrawBitmap( m_smile_bmp, x + 150, y + 150, TRUE );
dc.DrawBitmap( m_smile_bmp, x + 130, y + 10, TRUE );
dc.DrawBitmap( m_smile_bmp, x + 130, y + 280, TRUE );
dc.DrawBitmap( m_smile_bmp, x + 100, y + 70, TRUE );
dc.DrawBitmap( m_smile_bmp, x + 200, y + 70, TRUE );
}
}