+ dc.DrawText( _T("PNM handler"), 30, 1285 );
+ if (my_horse_pnm.Ok())
+ dc.DrawBitmap( my_horse_pnm, 30, 1300 );
+
+ dc.DrawText( _T("PNM handler (ascii grey)"), 280, 1285 );
+ if (my_horse_asciigrey_pnm.Ok())
+ dc.DrawBitmap( my_horse_asciigrey_pnm, 280, 1300 );
+
+ dc.DrawText( _T("PNM handler (raw grey)"), 530, 1285 );
+ if (my_horse_rawgrey_pnm.Ok())
+ dc.DrawBitmap( my_horse_rawgrey_pnm, 530, 1300 );
+
+ dc.DrawText( _T("TIFF handler"), 30, 1515 );
+ if (my_horse_tiff.Ok())
+ dc.DrawBitmap( my_horse_tiff, 30, 1530 );
+
+ dc.DrawText( _T("TGA handler"), 30, 1745 );
+ if (my_horse_tga.Ok())
+ dc.DrawBitmap( my_horse_tga, 30, 1760 );
+
+ dc.DrawText( _T("XPM handler"), 30, 1975 );
+ if (my_horse_xpm.Ok())
+ dc.DrawBitmap( my_horse_xpm, 30, 2000 );
+
+ // toucans
+ {
+ int x = 750, y = 10, yy = 170;
+
+ dc.DrawText(wxT("Original toucan"), x+50, y);
+ dc.DrawBitmap(my_toucan, x, y+15, true);
+ y += yy;
+ dc.DrawText(wxT("Flipped horizontally"), x+50, y);
+ dc.DrawBitmap(my_toucan_flipped_horiz, x, y+15, true);
+ y += yy;
+ dc.DrawText(wxT("Flipped vertically"), x+50, y);
+ dc.DrawBitmap(my_toucan_flipped_vert, x, y+15, true);
+ y += yy;
+ dc.DrawText(wxT("Flipped both h&v"), x+50, y);
+ dc.DrawBitmap(my_toucan_flipped_both, x, y+15, true);
+
+ y += yy;
+ dc.DrawText(wxT("In greyscale"), x+50, y);
+ dc.DrawBitmap(my_toucan_grey, x, y+15, true);
+
+ y += yy;
+ dc.DrawText(wxT("Toucan's head"), x+50, y);
+ dc.DrawBitmap(my_toucan_head, x, y+15, true);
+
+ y += yy;
+ dc.DrawText(wxT("Scaled with normal quality"), x+50, y);
+ dc.DrawBitmap(my_toucan_scaled_normal, x, y+15, true);
+
+ y += yy;
+ dc.DrawText(wxT("Scaled with high quality"), x+50, y);
+ dc.DrawBitmap(my_toucan_scaled_high, x, y+15, true);
+
+ y += yy;
+ dc.DrawText(wxT("Blured"), x+50, y);
+ dc.DrawBitmap(my_toucan_blur, x, y+15, true);
+ }
+
+ if (my_smile_xbm.Ok())
+ {
+ int x = 300, y = 1800;
+
+ dc.DrawText( _T("XBM bitmap"), x, y );
+ dc.DrawText( _T("(green on red)"), x, y + 15 );
+ dc.SetTextForeground( _T("GREEN") );
+ dc.SetTextBackground( _T("RED") );
+ dc.DrawBitmap( my_smile_xbm, x, y + 30 );
+
+ dc.SetTextForeground( *wxBLACK );
+ dc.DrawText( _T("After wxImage conversion"), x + 120, y );
+ dc.DrawText( _T("(red on white)"), x + 120, y + 15 );
+ dc.SetTextForeground( wxT("RED") );
+ wxImage i = my_smile_xbm.ConvertToImage();
+ i.SetMaskColour( 255, 255, 255 );
+ i.Replace( 0, 0, 0,
+ wxRED_PEN->GetColour().Red(),
+ wxRED_PEN->GetColour().Green(),
+ wxRED_PEN->GetColour().Blue() );
+ dc.DrawBitmap( wxBitmap(i), x + 120, y + 30, true );
+ dc.SetTextForeground( *wxBLACK );
+ }
+
+
+ wxBitmap mono( 60,50,1 );
+ wxMemoryDC memdc;
+ memdc.SelectObject( mono );
+ memdc.SetPen( *wxBLACK_PEN );
+ memdc.SetBrush( *wxWHITE_BRUSH );
+ memdc.DrawRectangle( 0,0,60,50 );
+ memdc.SetTextForeground( *wxBLACK );
+#ifndef __WXGTK20__
+ // I cannot convince GTK2 to draw into mono bitmaps
+ memdc.DrawText( _T("Hi!"), 5, 5 );
+#endif
+ memdc.SetBrush( *wxBLACK_BRUSH );
+ memdc.DrawRectangle( 33,5,20,20 );
+ memdc.SetPen( *wxRED_PEN );
+ memdc.DrawLine( 5, 42, 50, 42 );
+ memdc.SelectObject( wxNullBitmap );
+
+ if (mono.Ok())
+ {
+ int x = 300, y = 1900;
+
+ dc.DrawText( _T("Mono bitmap"), x, y );
+ dc.DrawText( _T("(red on green)"), x, y + 15 );
+ dc.SetTextForeground( wxT("RED") );
+ dc.SetTextBackground( wxT("GREEN") );
+ dc.DrawBitmap( mono, x, y + 30 );
+
+ dc.SetTextForeground( *wxBLACK );
+ dc.DrawText( _T("After wxImage conversion"), x + 120, y );
+ dc.DrawText( _T("(red on white)"), x + 120, y + 15 );
+ dc.SetTextForeground( wxT("RED") );
+ wxImage i = mono.ConvertToImage();
+ i.SetMaskColour( 255,255,255 );
+ i.Replace( 0,0,0,
+ wxRED_PEN->GetColour().Red(),
+ wxRED_PEN->GetColour().Green(),
+ wxRED_PEN->GetColour().Blue() );
+ dc.DrawBitmap( wxBitmap(i), x + 120, y + 30, true );
+ dc.SetTextForeground( *wxBLACK );
+ }
+
+ // For testing transparency
+ dc.SetBrush( *wxRED_BRUSH );
+ dc.DrawRectangle( 20, 2220, 560, 68 );
+
+ dc.DrawText(_T("XPM bitmap"), 30, 2230 );
+ if ( m_bmpSmileXpm.Ok() )
+ dc.DrawBitmap(m_bmpSmileXpm, 30, 2250, true);
+
+ dc.DrawText(_T("XPM icon"), 110, 2230 );
+ if ( m_iconSmileXpm.Ok() )
+ dc.DrawIcon(m_iconSmileXpm, 110, 2250);
+
+ // testing icon -> bitmap conversion
+ wxBitmap to_blit( m_iconSmileXpm );
+ if (to_blit.Ok())
+ {
+ dc.DrawText( _T("SubBitmap"), 170, 2230 );
+ wxBitmap sub = to_blit.GetSubBitmap( wxRect(0,0,15,15) );
+ if (sub.Ok())
+ dc.DrawBitmap( sub, 170, 2250, true );