+ // this is the test for "blitting bitmap into DC damages selected brush" bug
+ wxCoord rectSize = m_std_icon.GetWidth() + 10;
+ wxCoord x = 100;
+ dc.SetPen(*wxTRANSPARENT_PEN);
+ dc.SetBrush( *wxGREEN_BRUSH );
+ dc.DrawRectangle(x, 10, rectSize, rectSize);
+ dc.DrawBitmap(m_std_icon, x + 5, 15, TRUE);
+ x += rectSize + 10;
+ dc.DrawRectangle(x, 10, rectSize, rectSize);
+ dc.DrawIcon(m_std_icon, x + 5, 15);
+ x += rectSize + 10;
+ dc.DrawRectangle(x, 10, rectSize, rectSize);
+
+ // test for "transparent" bitmap drawing (it intersects with the last
+ // rectangle above)
+ //dc.SetBrush( *wxTRANSPARENT_BRUSH );
+
+ if (m_smile_bmp.Ok())
+ dc.DrawBitmap(m_smile_bmp, x + rectSize - 20, rectSize - 10, TRUE);
+
+ dc.SetBrush( *wxBLACK_BRUSH );
+ dc.DrawRectangle( 0, 160, 1000, 300 );
+
+ // draw lines
+ wxBitmap bitmap(20,70);
+ wxMemoryDC memdc;
+ memdc.SelectObject( bitmap );
+ memdc.SetBrush( *wxBLACK_BRUSH );
+ memdc.SetPen( *wxWHITE_PEN );
+ memdc.DrawRectangle(0,0,20,70);
+ memdc.DrawLine( 10,0,10,70 );
+
+ // to the right
+ wxPen pen = *wxRED_PEN;
+ memdc.SetPen(pen);
+ memdc.DrawLine( 10, 5,10, 5 );
+ memdc.DrawLine( 10,10,11,10 );
+ memdc.DrawLine( 10,15,12,15 );
+ memdc.DrawLine( 10,20,13,20 );
+
+/*
+ memdc.SetPen(*wxRED_PEN);
+ memdc.DrawLine( 12, 5,12, 5 );
+ memdc.DrawLine( 12,10,13,10 );
+ memdc.DrawLine( 12,15,14,15 );
+ memdc.DrawLine( 12,20,15,20 );
+*/
+
+ // same to the left
+ memdc.DrawLine( 10,25,10,25 );
+ memdc.DrawLine( 10,30, 9,30 );
+ memdc.DrawLine( 10,35, 8,35 );
+ memdc.DrawLine( 10,40, 7,40 );
+
+ // XOR draw lines
+ dc.SetPen(*wxWHITE_PEN);
+ memdc.SetLogicalFunction( wxINVERT );
+ memdc.SetPen( *wxWHITE_PEN );
+ memdc.DrawLine( 10,50,10,50 );
+ memdc.DrawLine( 10,55,11,55 );
+ memdc.DrawLine( 10,60,12,60 );
+ memdc.DrawLine( 10,65,13,65 );
+
+ memdc.DrawLine( 12,50,12,50 );
+ memdc.DrawLine( 12,55,13,55 );
+ memdc.DrawLine( 12,60,14,60 );
+ memdc.DrawLine( 12,65,15,65 );
+
+ memdc.SelectObject( wxNullBitmap );
+ dc.DrawBitmap( bitmap, 10, 170 );
+ wxImage image( bitmap );
+ image.Rescale( 60,210 );
+ bitmap = image.ConvertToBitmap();
+ dc.DrawBitmap( bitmap, 50, 170 );
+
+ // test the rectangle outline drawing - there should be one pixel between
+ // the rect and the lines
+ dc.SetPen(*wxWHITE_PEN);
+ dc.SetBrush( *wxTRANSPARENT_BRUSH );
+ dc.DrawRectangle(150, 170, 49, 29);
+ dc.DrawRectangle(200, 170, 49, 29);
+ dc.SetPen(*wxWHITE_PEN);
+ dc.DrawLine(250, 210, 250, 170);
+ dc.DrawLine(260, 200, 150, 200);
+
+ // test the rectangle filled drawing - there should be one pixel between
+ // the rect and the lines