added cur and ico formats to the sample

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2002-02-02 23:16:09 +00:00
parent 0f04dbf324
commit bf504f980a
4 changed files with 96 additions and 6 deletions

View File

@ -13,7 +13,8 @@ top_srcdir = @top_srcdir@/..
top_builddir = ../..
program_dir = samples/image
DATAFILES = horse.png horse.jpg horse.bmp horse.gif horse.pcx horse.pnm horse.tif horse.xpm smile.xbm
DATAFILES = horse.png horse.jpg horse.bmp horse.gif horse.pcx horse.pnm \
horse.tif horse.xpm smile.xbm horse.cur horse.ico
PROGRAM=image

BIN
samples/image/horse.cur Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

BIN
samples/image/horse.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -52,11 +52,17 @@ public:
wxBitmap *my_horse_pnm;
wxBitmap *my_horse_tiff;
wxBitmap *my_horse_xpm;
wxBitmap *my_horse_ico32;
wxBitmap *my_horse_ico16;
wxBitmap *my_horse_ico;
wxBitmap *my_horse_cur;
wxBitmap *my_smile_xbm;
wxBitmap *my_square;
wxBitmap *my_anti;
int xH, yH ;
protected:
wxBitmap m_bmpSmileXpm;
wxIcon m_iconSmileXpm;
@ -126,7 +132,8 @@ public:
void OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc( this );
dc.DrawBitmap( m_bitmap, 0, 0 );
//TRUE for masked images
dc.DrawBitmap( m_bitmap, 0, 0, TRUE );
}
void OnSave(wxCommandEvent& WXUNUSED(event))
@ -158,7 +165,9 @@ public:
wxT("JPEG files (*.jpg)|*.jpg|")
wxT("GIF files (*.gif)|*.gif|")
wxT("TIFF files (*.tif)|*.tif|")
wxT("PCX files (*.pcx)|*.pcx"),
wxT("PCX files (*.pcx)|*.pcx|")
wxT("ICO files (*.ico)|*.ico|")
wxT("CUR files (*.cur)|*.cur"),
wxSAVE);
if ( savefilename.empty() )
@ -190,6 +199,15 @@ public:
saved=image.SaveFile(savefilename, wxBITMAP_TYPE_JPEG);
else if (extension == "pnm")
saved=image.SaveFile(savefilename, wxBITMAP_TYPE_PNM);
else if (extension == "ico")
saved=image.SaveFile(savefilename, wxBITMAP_TYPE_ICO);
else if (extension == "cur")
{
image.Rescale(32,32);
image.SetOption(wxCUR_HOTSPOT_X, 0);
image.SetOption(wxCUR_HOTSPOT_Y, 0);
saved=image.SaveFile(savefilename, wxBITMAP_TYPE_CUR);
}
else
wxMessageBox("Unknown file type, see options in file selector.",
"Unknown file type",
@ -243,6 +261,11 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
my_horse_pnm = (wxBitmap*) NULL;
my_horse_tiff = (wxBitmap*) NULL;
my_horse_xpm = (wxBitmap*) NULL;
my_horse_ico32 = (wxBitmap*) NULL;
my_horse_ico16 = (wxBitmap*) NULL;
my_horse_ico = (wxBitmap*) NULL;
my_horse_cur = (wxBitmap*) NULL;
my_smile_xbm = (wxBitmap*) NULL;
my_square = (wxBitmap*) NULL;
my_anti = (wxBitmap*) NULL;
@ -362,6 +385,42 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
if ( m_bmpSmileXpm.Ok() )
m_bmpSmileXpm.SaveFile("saved.xpm", wxBITMAP_TYPE_XPM);
#endif
#if wxUSE_ICO_CUR
image.Destroy();
if ( !image.LoadFile( dir + wxString("horse.ico"), wxBITMAP_TYPE_ICO, 0 ) )
wxLogError(wxT("Can't load first ICO image"));
else
my_horse_ico32 = new wxBitmap( image );
image.Destroy();
if ( !image.LoadFile( dir + wxString("horse.ico"), wxBITMAP_TYPE_ICO, 1 ) )
wxLogError(wxT("Can't load second ICO image"));
else
my_horse_ico16 = new wxBitmap( image );
image.Destroy();
if ( !image.LoadFile( dir + wxString("horse.ico") ) )
wxLogError(wxT("Can't load best ICO image"));
else
my_horse_ico = new wxBitmap( image );
image.Destroy();
if ( !image.LoadFile( dir + wxString("horse.cur"), wxBITMAP_TYPE_CUR ) )
wxLogError(wxT("Can't load best ICO image"));
else
{
my_horse_cur = new wxBitmap( image );
xH = 30 + image.GetOptionInt(wxCUR_HOTSPOT_X) ;
yH = 2420 + image.GetOptionInt(wxCUR_HOTSPOT_Y) ;
}
#endif
}
MyCanvas::~MyCanvas()
@ -374,6 +433,9 @@ MyCanvas::~MyCanvas()
delete my_horse_pcx;
delete my_horse_tiff;
delete my_horse_xpm;
delete my_horse_ico32;
delete my_horse_ico16;
delete my_horse_ico;
delete my_smile_xbm;
delete my_square;
delete my_anti;
@ -435,6 +497,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
if (my_horse_xpm && my_horse_xpm->Ok())
dc.DrawBitmap( *my_horse_xpm, 30, 1760 );
if (my_smile_xbm && my_smile_xbm->Ok())
{
dc.DrawText( "XBM bitmap", 30, 1975 );
@ -505,6 +568,27 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
{
dc.DrawIcon(m_iconSmileXpm, 150, 2250);
}
dc.DrawText( "ICO handler (1st image)", 30, 2290 );
if (my_horse_ico32 && my_horse_ico32->Ok())
dc.DrawBitmap( *my_horse_ico32, 30, 2330, TRUE );
dc.DrawText( "ICO handler (2nd image)", 230, 2290 );
if (my_horse_ico16 && my_horse_ico16->Ok())
dc.DrawBitmap( *my_horse_ico16, 230, 2330, TRUE );
dc.DrawText( "ICO handler (best image)", 430, 2290 );
if (my_horse_ico && my_horse_ico->Ok())
dc.DrawBitmap( *my_horse_ico, 430, 2330, TRUE );
dc.DrawText( "CUR handler", 30, 2390 );
if (my_horse_cur && my_horse_cur->Ok())
{
dc.DrawBitmap( *my_horse_cur, 30, 2420, TRUE );
dc.SetPen (*wxRED_PEN);
dc.DrawLine (xH-10,yH,xH+10,yH);
dc.DrawLine (xH,yH-10,xH,yH+10);
}
}
void MyCanvas::CreateAntiAliasedBitmap()
@ -592,8 +676,8 @@ MyFrame::MyFrame()
m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(10,10) );
// 500 width * 2100 height
m_canvas->SetScrollbars( 10, 10, 50, 220 );
// 500 width * 2500 height
m_canvas->SetScrollbars( 10, 10, 50, 250 );
}
void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) )
@ -659,6 +743,11 @@ bool MyApp::OnInit()
wxImage::AddHandler( new wxXPMHandler );
#endif
#if wxUSE_ICO_CUR
wxImage::AddHandler( new wxICOHandler );
wxImage::AddHandler( new wxCURHandler );
#endif
wxFrame *frame = new MyFrame();
frame->Show( TRUE );