X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3cbe51d09405849cc89b185b90aaa8880365e3dd..6ba5438dda164146bf36ca729f8328332fae36b7:/samples/png/pngdemo.cpp?ds=sidebyside diff --git a/samples/png/pngdemo.cpp b/samples/png/pngdemo.cpp index 520bb10fd1..ba275d9c09 100644 --- a/samples/png/pngdemo.cpp +++ b/samples/png/pngdemo.cpp @@ -5,8 +5,8 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -20,12 +20,7 @@ #pragma hdrstop #endif -#ifdef __WXMSW__ -#include "wx/pnghand.h" -#endif -#ifdef __WXGTK__ #include "wx/image.h" -#endif #include "pngdemo.h" @@ -34,33 +29,31 @@ wxBitmap *g_TestBitmap = (wxBitmap *) NULL; IMPLEMENT_APP(MyApp) -MyApp::MyApp() -{ -} - bool MyApp::OnInit(void) { wxImage::AddHandler(new wxPNGHandler); // Create the main frame window - frame = new MyFrame((wxFrame *) NULL, "wxPNGBitmap Demo", wxPoint(0, 0), wxSize(300, 300)); + frame = new MyFrame((wxFrame *) NULL, _T("wxPNGBitmap Demo"), wxPoint(0, 0), wxSize(300, 300)); +#if wxUSE_STATUSBAR // Give it a status line frame->CreateStatusBar(2); +#endif // wxUSE_STATUSBAR // Make a menubar wxMenu *file_menu = new wxMenu; wxMenu *help_menu = new wxMenu; - file_menu->Append(PNGDEMO_LOAD_FILE, "&Load file", "Load file"); - file_menu->Append(PNGDEMO_SAVE_FILE, "&Save file", "Save file"); - file_menu->Append(PNGDEMO_QUIT, "E&xit", "Quit program"); - help_menu->Append(PNGDEMO_ABOUT, "&About", "About PNG demo"); + file_menu->Append(PNGDEMO_LOAD_FILE, _T("&Load file"), _T("Load file")); + file_menu->Append(PNGDEMO_SAVE_FILE, _T("&Save file"), _T("Save file")); + file_menu->Append(PNGDEMO_QUIT, _T("E&xit"), _T("Quit program")); + help_menu->Append(PNGDEMO_ABOUT, _T("&About"), _T("About PNG demo")); wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); + menu_bar->Append(file_menu, _T("&File")); + menu_bar->Append(help_menu, _T("&Help")); // Associate the menu bar with the frame frame->SetMenuBar(menu_bar); @@ -71,11 +64,13 @@ bool MyApp::OnInit(void) // canvas->SetScrollbars(20, 20, 50, 50, 4, 4); frame->canvas = canvas; - frame->Show(TRUE); + frame->Show(true); - frame->SetStatusText("Hello, wxWindows"); +#if wxUSE_STATUSBAR + frame->SetStatusText(_T("Hello, wxWidgets")); +#endif // wxUSE_STATUSBAR - return TRUE; + return true; } BEGIN_EVENT_TABLE(MyFrame, wxFrame) @@ -87,60 +82,76 @@ END_EVENT_TABLE() // Define my frame constructor MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(frame, -1, title, pos, size) + wxFrame(frame, wxID_ANY, title, pos, size) { 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); + Close(true); } void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { - (void)wxMessageBox("PNG demo\nJulian Smart (c) 1998", - "About PNG Demo", wxOK); + (void)wxMessageBox(_T("PNG demo\nJulian Smart (c) 1998"), + _T("About PNG Demo"), wxOK); } void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event)) { - wxString f = wxFileSelector( "Save Image", (const char *)NULL, (const char *)NULL, - "png", "PNG files (*.png)|*.png" ); - - if (f == "") return; - - wxBitmap *backstore = new wxBitmap( 150, 150 ); - - wxMemoryDC memDC; - memDC.SelectObject( *backstore ); - memDC.Clear(); - memDC.SetBrush( *wxBLACK_BRUSH ); - memDC.SetPen( *wxWHITE_PEN ); - memDC.DrawRectangle( 0, 0, 150, 150 ); - memDC.SetPen( *wxBLACK_PEN ); - memDC.DrawLine( 0, 0, 0, 10 ); - memDC.SetTextForeground( *wxWHITE ); - memDC.DrawText( "This is a memory dc.", 10, 10 ); - - memDC.SelectObject( wxNullBitmap ); - - backstore->SaveFile( f, wxBITMAP_TYPE_PNG, (wxPalette*)NULL ); - - delete backstore; +#if wxUSE_FILEDLG + wxString f = wxFileSelector( wxT("Save Image"), (const wxChar *)NULL, + (const wxChar *)NULL, + wxT("png"), wxT("PNG files (*.png)|*.png") ); + + if (f.empty()) return; + + wxBitmap *backstore = new wxBitmap( 150, 150 ); + + wxMemoryDC memDC; + memDC.SelectObject( *backstore ); + memDC.Clear(); + memDC.SetBrush( *wxBLACK_BRUSH ); + memDC.SetPen( *wxWHITE_PEN ); + memDC.DrawRectangle( 0, 0, 150, 150 ); + memDC.SetPen( *wxBLACK_PEN ); + memDC.DrawLine( 0, 0, 0, 10 ); + memDC.SetTextForeground( *wxWHITE ); + memDC.DrawText( _T("This is a memory dc."), 10, 10 ); + + memDC.SelectObject( wxNullBitmap ); + + backstore->SaveFile( f, wxBITMAP_TYPE_PNG, (wxPalette*)NULL ); + + delete backstore; +#endif // wxUSE_FILEDLG } void MyFrame::OnLoadFile(wxCommandEvent& WXUNUSED(event)) { - // Show file selector. - wxString f = wxFileSelector("Open Image", (const char *) NULL, (const char *) NULL,"png", - "PNG files (*.png)|*.png"); +#if wxUSE_FILEDLG + // 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.empty()) + return; if ( g_TestBitmap ) delete g_TestBitmap; + g_TestBitmap = new wxBitmap(f, wxBITMAP_TYPE_PNG); if (!g_TestBitmap->Ok()) { @@ -149,6 +160,7 @@ void MyFrame::OnLoadFile(wxCommandEvent& WXUNUSED(event)) } canvas->Refresh(); +#endif // wxUSE_FILEDLG } BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) @@ -157,52 +169,46 @@ END_EVENT_TABLE() // Define a constructor for my canvas MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size): - wxScrolledWindow(parent, -1, pos, size) -{ -} - -MyCanvas::~MyCanvas(void) + wxScrolledWindow(parent, wxID_ANY, pos, size) { } // Define the repainting behaviour void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { - wxPaintDC dc(this); - dc.SetPen(* wxRED_PEN); - - int i; - for ( i = 0; i < 500; i += 10) - { - dc.DrawLine(0, i, 800, i); - } - if ( g_TestBitmap && g_TestBitmap->Ok() ) - { - wxMemoryDC memDC; - if ( g_TestBitmap->GetPalette() ) + wxPaintDC dc(this); + dc.SetPen(* wxRED_PEN); + + int i; + for ( i = 0; i < 500; i += 10) { - memDC.SetPalette(* g_TestBitmap->GetPalette()); - dc.SetPalette(* g_TestBitmap->GetPalette()); + dc.DrawLine(0, i, 800, i); + } + if ( g_TestBitmap && g_TestBitmap->Ok() ) + { + wxMemoryDC memDC; + if ( g_TestBitmap->GetPalette() ) + { + memDC.SetPalette(* g_TestBitmap->GetPalette()); + dc.SetPalette(* g_TestBitmap->GetPalette()); + } + memDC.SelectObject(* g_TestBitmap); + + // Normal, non-transparent blitting + dc.Blit(20, 20, g_TestBitmap->GetWidth(), g_TestBitmap->GetHeight(), & memDC, 0, 0, wxCOPY, false); + + memDC.SelectObject(wxNullBitmap); } - memDC.SelectObject(* g_TestBitmap); - - // Normal, non-transparent blitting - dc.Blit(20, 20, g_TestBitmap->GetWidth(), g_TestBitmap->GetHeight(), & memDC, 0, 0, wxCOPY, FALSE); - - memDC.SelectObject(wxNullBitmap); - } - if ( g_TestBitmap && g_TestBitmap->Ok() ) - { - wxMemoryDC memDC; - memDC.SelectObject(* g_TestBitmap); + if ( g_TestBitmap && g_TestBitmap->Ok() ) + { + wxMemoryDC memDC; + 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, - 0, 0, wxCOPY, TRUE); + // 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, + 0, 0, wxCOPY, true); - memDC.SelectObject(wxNullBitmap); - } + memDC.SelectObject(wxNullBitmap); + } } - -