// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "pngdemo.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
IMPLEMENT_APP(MyApp)
-MyApp::MyApp()
-{
-}
-
bool MyApp::OnInit(void)
{
wxImage::AddHandler(new wxPNGHandler);
// 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;
frame->Show(true);
+#if wxUSE_STATUSBAR
frame->SetStatusText(_T("Hello, wxWidgets"));
+#endif // wxUSE_STATUSBAR
return true;
}
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 )
}
canvas->Refresh();
+#endif // wxUSE_FILEDLG
}
BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
{
}
-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);
+ }
}
-
-