]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/dragimag/dragimag.cpp
Fix wxListCtrl background colour bug Part I
[wxWidgets.git] / samples / dragimag / dragimag.cpp
index 43a115629fd72d85f28b25ec5c73bc4fe4576c42..aa00bf12f3f98a92b985f073e370a1510dad5f3f 100644 (file)
@@ -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("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));
@@ -281,9 +278,6 @@ void MyCanvas::DrawShapes(wxDC& dc)
           shape->Draw(dc);
         node = node->Next();
     }
-#if wxUSE_DC_CACHEING
-    wxDC::ClearCache();
-#endif
 }
 
 void MyCanvas::EraseShape(DragShape* shape, wxDC& dc)
@@ -385,16 +379,10 @@ 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))
     {
-        m_background = image.ConvertToBitmap();
+        m_background = wxBitmap(image);
     }
 
     MyFrame *frame = new MyFrame();
@@ -405,10 +393,13 @@ bool MyApp::OnInit()
     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 +436,6 @@ bool MyApp::OnInit()
 
 int MyApp::OnExit()
 {
-#if wxUSE_DC_CACHEING
-    wxDC::ClearCache();
-#endif
     return 0;
 }