X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0cbff1201aa47e2b73ec90a97886f18e88270ea6..27e229f55a1e4688261cbc88e851d41b0f9e8e33:/samples/dragimag/dragimag.cpp diff --git a/samples/dragimag/dragimag.cpp b/samples/dragimag/dragimag.cpp index 43a115629f..8edbede71a 100644 --- a/samples/dragimag/dragimag.cpp +++ b/samples/dragimag/dragimag.cpp @@ -36,7 +36,7 @@ #include "dragimag.h" -#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__) #include "mondrian.xpm" #include "dragicon.xpm" #endif @@ -101,9 +101,6 @@ void MyCanvas::OnEraseBackground(wxEraseEvent& event) wxClientDC dc(this); wxGetApp().TileBitmap(rect, dc, wxGetApp().GetBackgroundBitmap()); } -#if wxUSE_DC_CACHEING - wxDC::ClearCache(); -#endif } else event.Skip(); // The official way of doing it @@ -186,14 +183,14 @@ void MyCanvas::OnMouseEvent(wxMouseEvent& event) } case SHAPE_DRAG_TEXT: { - m_dragImage = new wxDragImage("Dragging some test text", wxCursor(wxCURSOR_HAND)); + m_dragImage = new wxDragImage(wxString(_T("Dragging some test text")), wxCursor(wxCURSOR_HAND)); break; } case SHAPE_DRAG_ICON: { // Can anyone explain why this test is necessary, // to prevent a gcc error? -#ifdef __WXMOTIF__ +#if defined(__WXMOTIF__) || defined(__WXX11__) wxIcon icon(dragicon_xpm); #else wxIcon icon(wxICON(dragicon)); @@ -273,17 +270,14 @@ void MyCanvas::OnMouseEvent(wxMouseEvent& event) void MyCanvas::DrawShapes(wxDC& dc) { - wxNode* node = m_displayList.First(); + wxNode* node = m_displayList.GetFirst(); while (node) { - DragShape* shape = (DragShape*) node->Data(); + DragShape* shape = (DragShape*) node->GetData(); if (shape->IsShown()) shape->Draw(dc); - node = node->Next(); + node = node->GetNext(); } -#if wxUSE_DC_CACHEING - wxDC::ClearCache(); -#endif } void MyCanvas::EraseShape(DragShape* shape, wxDC& dc) @@ -301,25 +295,25 @@ void MyCanvas::EraseShape(DragShape* shape, wxDC& dc) void MyCanvas::ClearShapes() { - wxNode* node = m_displayList.First(); + wxNode* node = m_displayList.GetFirst(); while (node) { - DragShape* shape = (DragShape*) node->Data(); + DragShape* shape = (DragShape*) node->GetData(); delete shape; - node = node->Next(); + node = node->GetNext(); } m_displayList.Clear(); } DragShape* MyCanvas::FindShape(const wxPoint& pt) const { - wxNode* node = m_displayList.First(); + wxNode* node = m_displayList.GetFirst(); while (node) { - DragShape* shape = (DragShape*) node->Data(); + DragShape* shape = (DragShape*) node->GetData(); if (shape->HitTest(pt)) return shape; - node = node->Next(); + node = node->GetNext(); } return (DragShape*) NULL; } @@ -333,16 +327,16 @@ BEGIN_EVENT_TABLE(MyFrame,wxFrame) END_EVENT_TABLE() MyFrame::MyFrame() - : wxFrame( (wxFrame *)NULL, -1, "wxDragImage sample", + : wxFrame( (wxFrame *)NULL, -1, _T("wxDragImage sample"), wxPoint(20,20), wxSize(470,360) ) { wxMenu *file_menu = new wxMenu(); - file_menu->Append( wxID_ABOUT, "&About..."); - file_menu->Append( TEST_USE_SCREEN, "&Use whole screen for dragging", "Use whole screen", TRUE); - file_menu->Append( wxID_EXIT, "E&xit"); + file_menu->Append( wxID_ABOUT, _T("&About...")); + file_menu->Append( TEST_USE_SCREEN, _T("&Use whole screen for dragging"), _T("Use whole screen"), TRUE); + file_menu->Append( wxID_EXIT, _T("E&xit")); wxMenuBar *menu_bar = new wxMenuBar(); - menu_bar->Append(file_menu, "&File"); + menu_bar->Append(file_menu, _T("&File")); SetMenuBar( menu_bar ); @@ -360,9 +354,10 @@ void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) { - (void)wxMessageBox( "wxDragImage demo\n" - "Julian Smart (c) 2000", - "About wxDragImage Demo", wxICON_INFORMATION | wxOK ); + (void)wxMessageBox( _T("wxDragImage demo\n") + _T("Julian Smart (c) 2000"), + _T("About wxDragImage Demo"), + wxICON_INFORMATION | wxOK ); } //----------------------------------------------------------------------------- @@ -385,30 +380,27 @@ bool MyApp::OnInit() wxImage::AddHandler( new wxPNGHandler ); #endif - // The DC cache is an efficiency measure to be used - // when a lot of masked blitting is done -#if wxUSE_DC_CACHEING - wxDC::EnableCache(TRUE); -#endif - wxImage image; - if (image.LoadFile("backgrnd.png", wxBITMAP_TYPE_PNG)) + if (image.LoadFile(_T("backgrnd.png"), wxBITMAP_TYPE_PNG)) { - m_background = image.ConvertToBitmap(); + m_background = wxBitmap(image); } MyFrame *frame = new MyFrame(); - wxString rootName("shape0"); + wxString rootName(_T("shape0")); int i; for (i = 1; i < 4; i++) { wxString filename; - filename.Printf("%s%d.png", (const char*) rootName, i); + filename.Printf(wxT("%s%d.png"), (const wxChar*)rootName, i); + /* For some reason under wxX11, the 2nd LoadFile in this loop fails, with + a BadMatch inside CreateFromImage (inside ConvertToBitmap). This happens even if you copy + the first file over the second file. */ if (image.LoadFile(filename, wxBITMAP_TYPE_PNG)) { - DragShape* newShape = new DragShape(image.ConvertToBitmap()); + DragShape* newShape = new DragShape(wxBitmap(image)); newShape->SetPosition(wxPoint(i*50, i*50)); if (i == 2) @@ -445,9 +437,6 @@ bool MyApp::OnInit() int MyApp::OnExit() { -#if wxUSE_DC_CACHEING - wxDC::ClearCache(); -#endif return 0; }