]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/png/pngdemo.cpp
remove file lists on exit
[wxWidgets.git] / samples / png / pngdemo.cpp
index 7bbd13e4739b7a28f6e767bd13166d633e7982cf..20faa8d94d804201b1ee69cc917c2984c9bf0a3b 100644 (file)
@@ -9,10 +9,6 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#pragma implementation "pngdemo.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -29,10 +25,6 @@ wxBitmap  *g_TestBitmap = (wxBitmap *) NULL;
 
 IMPLEMENT_APP(MyApp)
 
-MyApp::MyApp()
-{
-}
-
 bool MyApp::OnInit(void)
 {
   wxImage::AddHandler(new wxPNGHandler);
@@ -40,8 +32,10 @@ bool MyApp::OnInit(void)
   // Create the main frame window
   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;
@@ -68,7 +62,9 @@ bool MyApp::OnInit(void)
 
   frame->Show(true);
 
+#if wxUSE_STATUSBAR
   frame->SetStatusText(_T("Hello, wxWidgets"));
+#endif // wxUSE_STATUSBAR
 
   return true;
 }
@@ -110,40 +106,43 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event))
 {
-  wxString f = wxFileSelector( wxT("Save Image"), (const wxChar *)NULL,
-                               (const wxChar *)NULL,
-                               wxT("png"), wxT("PNG files (*.png)|*.png") );
-
-  if (f == _T(""))  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;
+#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))
 {
+#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 == _T(""))
+    if (f.empty())
         return;
 
     if ( g_TestBitmap )
@@ -157,6 +156,7 @@ void MyFrame::OnLoadFile(wxCommandEvent& WXUNUSED(event))
     }
 
     canvas->Refresh();
+#endif // wxUSE_FILEDLG
 }
 
 BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
@@ -169,48 +169,42 @@ MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size):
 {
 }
 
-MyCanvas::~MyCanvas(void)
-{
-}
-
 // 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);
+    }
 }
-
-