]> git.saurik.com Git - wxWidgets.git/commitdiff
more region tests
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 17 Jun 2001 13:25:55 +0000 (13:25 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 17 Jun 2001 13:25:55 +0000 (13:25 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/drawing/drawing.cpp

index 84d05d34120f4a20d3b352e7f6a11bf77fea114b..61fed0ce1ed109db00643533bc707bcb77be1642 100644 (file)
@@ -159,6 +159,8 @@ protected:
     void DrawCircles(wxDC& dc);
     void DrawDefault(wxDC& dc);
 
+    void DrawRegionsHelper(wxDC& dc, wxCoord x);
+
 private:
     MyFrame *m_owner;
 
@@ -988,35 +990,49 @@ 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", 10, 5 + dc.GetCharHeight());
+                "right (2 copies should be identical)",
+                10, 5 + dc.GetCharHeight());
+
+    DrawRegionsHelper(dc, 10);
+    DrawRegionsHelper(dc, 350);
+}
 
+void MyCanvas::DrawRegionsHelper(wxDC& dc, wxCoord x)
+{
+    dc.DestroyClippingRegion();
     dc.SetBrush( *wxWHITE_BRUSH );
     dc.SetPen( *wxTRANSPARENT_PEN );
-    dc.DrawRectangle( 10,50,310,310 );
+    dc.DrawRectangle( x,50,310,310 );
 
-    dc.SetClippingRegion( 20,60,100,270 );
+    dc.SetClippingRegion( x+10,60,100,270 );
 
     dc.SetBrush( *wxRED_BRUSH );
-    dc.DrawRectangle( 10,50,310,310 );
+    dc.DrawRectangle( x,50,310,310 );
 
-    dc.SetClippingRegion( 20,60,100,100 );
+    dc.SetClippingRegion( x+10,60,100,100 );
 
     dc.SetBrush( *wxCYAN_BRUSH );
-    dc.DrawRectangle( 10,50,310,310 );
+    dc.DrawRectangle( x,50,310,310 );
 
-    dc.DestroyClippingRegion();
-    dc.SetClippingRegion( 120,70,100,270 );
+    // 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.SetBrush( *wxGREY_BRUSH );
-    dc.DrawRectangle( 10,50,310,310 );
+    dc.DrawRectangle( x,50,310,310 );
 
     if (m_smile_bmp.Ok())
     {
-        dc.DrawBitmap( m_smile_bmp, 160, 200, TRUE );
-        dc.DrawBitmap( m_smile_bmp, 140, 60, TRUE );
-        dc.DrawBitmap( m_smile_bmp, 140, 330, TRUE );
-        dc.DrawBitmap( m_smile_bmp, 110, 120, TRUE );
-        dc.DrawBitmap( m_smile_bmp, 210, 120, TRUE );
+        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 );
     }
 }