X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/01111366c9b4ea40eee7f4b13ddfe6f6b9f886db..f0824a5a4a255989b5153945ade9e21232724980:/samples/image/image.cpp diff --git a/samples/image/image.cpp b/samples/image/image.cpp index 997b1f9484..4e51460807 100644 --- a/samples/image/image.cpp +++ b/samples/image/image.cpp @@ -29,6 +29,7 @@ class MyCanvas: public wxScrolledWindow void OnPaint( wxPaintEvent &event ); wxBitmap *my_horse; + wxBitmap *my_square; DECLARE_EVENT_TABLE() }; @@ -77,13 +78,30 @@ MyCanvas::MyCanvas( wxWindow *parent, const wxWindowID id, const wxPoint &pos, c : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER ) { wxImage image; + + wxBitmap bitmap( 100, 100 ); + + wxMemoryDC dc; + dc.SelectObject( bitmap ); + dc.SetBrush( wxBrush( "orange", wxSOLID ) ); + dc.SetPen( *wxWHITE_PEN ); + dc.DrawRectangle( 0, 0, 100, 100 ); + dc.SelectObject( wxNullBitmap ); + + image = bitmap.ConvertToImage(); + image.SaveFile( "../test.png", wxBITMAP_TYPE_PNG ); + image.LoadFile( "../horse.png", wxBITMAP_TYPE_PNG ); my_horse = new wxBitmap( image ); + + image.LoadFile( "../test.png", wxBITMAP_TYPE_PNG ); + my_square = new wxBitmap( image ); } MyCanvas::~MyCanvas(void) { delete my_horse; + delete my_square; } void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) @@ -91,23 +109,32 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) wxPaintDC dc( this ); PrepareDC( dc ); - dc.DrawBitmap( *my_horse, 30, 120 ); + dc.DrawText( "Loaded image", 30, 100 ); + if (my_square->Ok()) dc.DrawBitmap( *my_square, 30, 120 ); + + dc.DrawText( "Drawn directly", 150, 100 ); + dc.SetBrush( wxBrush( "orange", wxSOLID ) ); + dc.SetPen( *wxWHITE_PEN ); + dc.DrawRectangle( 150, 120, 100, 100 ); + + if (my_horse->Ok()) dc.DrawBitmap( *my_horse, 30, 240 ); } // MyFrame -const ID_QUIT = 108; -const ID_ABOUT = 109; +const int ID_QUIT = 108; +const int ID_ABOUT = 109; IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) BEGIN_EVENT_TABLE(MyFrame,wxFrame) EVT_MENU (ID_ABOUT, MyFrame::OnAbout) EVT_MENU (ID_QUIT, MyFrame::OnQuit) + EVT_SIZE (MyFrame::OnSize) END_EVENT_TABLE() MyFrame::MyFrame(void) : - wxFrame( (wxFrame *) NULL, -1, (char *) "Robert's Test application", wxPoint(20,20), wxSize(470,360) ) + wxFrame( (wxFrame *) NULL, -1, "wxImage sample", wxPoint(20,20), wxSize(470,360) ) { wxMenu *file_menu = new wxMenu(); file_menu->Append( ID_ABOUT, "About.."); @@ -119,7 +146,11 @@ MyFrame::MyFrame(void) : SetMenuBar( menu_bar ); - m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) ); + CreateStatusBar(2); + int widths[] = { -1, 100 }; + SetStatusWidths( 2, widths ); + + m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(10,10) ); m_canvas->SetScrollbars( 10, 10, 50, 50 ); } @@ -130,7 +161,14 @@ void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) { - (void) wxMessageBox( "Image demo\nRobert Roebling (c) 1998", "About Image Demo", wxOK ); + (void) wxMessageBox( "wxImage demo\nRobert Roebling (c) 1998", "About wxImage Demo", wxOK ); +} + +void MyFrame::OnSize( wxSizeEvent &WXUNUSED(event) ) +{ + int w,h; + GetClientSize( &w, &h ); + m_canvas->SetSize( w, h ); } //-----------------------------------------------------------------------------