X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cf7a7e133be36522ec3afd0417f1d2bd860b4f6c..32b70aec1ff90877ae0ce2ce82967f698218fbdc:/samples/png/pngdemo.cpp diff --git a/samples/png/pngdemo.cpp b/samples/png/pngdemo.cpp index d97f4058dd..186d3c90ac 100644 --- a/samples/png/pngdemo.cpp +++ b/samples/png/pngdemo.cpp @@ -6,7 +6,7 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -20,9 +20,7 @@ #pragma hdrstop #endif -#ifdef __WXMSW__ -#include -#endif +#include "wx/image.h" #include "pngdemo.h" @@ -37,9 +35,7 @@ MyApp::MyApp() bool MyApp::OnInit(void) { -#ifdef __WXMSW__ - wxBitmap::AddHandler(new wxPNGFileHandler); -#endif + wxImage::AddHandler(new wxPNGHandler); // Create the main frame window frame = new MyFrame((wxFrame *) NULL, "wxPNGBitmap Demo", wxPoint(0, 0), wxSize(300, 300)); @@ -91,6 +87,16 @@ MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, cons canvas = (MyCanvas *) NULL; } +// frame destructor +MyFrame::~MyFrame() +{ + if (g_TestBitmap) + { + delete g_TestBitmap; + g_TestBitmap = (wxBitmap *) NULL; + } +} + void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) { Close(TRUE); @@ -104,10 +110,11 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event)) { - char *f = wxFileSelector( "Save Image", (const char *)NULL, (const char *)NULL, - "png", "PNG files (*.png)|*.png" ); + wxString f = wxFileSelector( wxT("Save Image"), (const wxChar *)NULL, + (const wxChar *)NULL, + wxT("png"), wxT("PNG files (*.png)|*.png") ); - if (!f) return; + if (f == "") return; wxBitmap *backstore = new wxBitmap( 150, 150 ); @@ -131,15 +138,17 @@ void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnLoadFile(wxCommandEvent& WXUNUSED(event)) { - // Show file selector. - char *f = wxFileSelector("Open Image", (const char *) NULL, (const char *) NULL,"png", - "PNG files (*.png)|*.png"); + // Show file selector. + wxString f = wxFileSelector(wxT("Open Image"), (const wxChar *) NULL, + (const wxChar *) NULL, wxT("png"), + wxT("PNG files (*.png)|*.png")); - if (!f) - return; + if (f == "") + return; if ( g_TestBitmap ) delete g_TestBitmap; + g_TestBitmap = new wxBitmap(f, wxBITMAP_TYPE_PNG); if (!g_TestBitmap->Ok()) { @@ -168,7 +177,7 @@ MyCanvas::~MyCanvas(void) void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); - dc.SetPen(wxRED_PEN); + dc.SetPen(* wxRED_PEN); int i; for ( i = 0; i < 500; i += 10) @@ -178,12 +187,12 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) if ( g_TestBitmap && g_TestBitmap->Ok() ) { wxMemoryDC memDC; - if ( g_TestBitmap->GetColourMap() ) + if ( g_TestBitmap->GetPalette() ) { - memDC.SetColourMap(g_TestBitmap->GetColourMap()); - dc.SetColourMap(g_TestBitmap->GetColourMap()); + memDC.SetPalette(* g_TestBitmap->GetPalette()); + dc.SetPalette(* g_TestBitmap->GetPalette()); } - memDC.SelectObject(g_TestBitmap); + memDC.SelectObject(* g_TestBitmap); // Normal, non-transparent blitting dc.Blit(20, 20, g_TestBitmap->GetWidth(), g_TestBitmap->GetHeight(), & memDC, 0, 0, wxCOPY, FALSE); @@ -194,7 +203,7 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) if ( g_TestBitmap && g_TestBitmap->Ok() ) { wxMemoryDC memDC; - memDC.SelectObject(g_TestBitmap); + memDC.SelectObject(* g_TestBitmap); // Transparent blitting if there's a mask in the bitmap dc.Blit(20 + g_TestBitmap->GetWidth() + 20, 20, g_TestBitmap->GetWidth(), g_TestBitmap->GetHeight(), & memDC, @@ -204,12 +213,4 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) } } -// Define the behaviour for the frame closing -// - must delete all frames except for the main one. -bool MyFrame::OnClose(void) -{ - Show(FALSE); - - return TRUE; -}