]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/dragimag/dragimag.cpp
refresh the dialog children forcefully even if wxCLIP_CHILDREN was specified
[wxWidgets.git] / samples / dragimag / dragimag.cpp
index 7be138f0c1a92b177aa75afb1ff50af9d8fb1470..aa00bf12f3f98a92b985f073e370a1510dad5f3f 100644 (file)
@@ -36,7 +36,7 @@
 
 #include "dragimag.h"
 
 
 #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
 #include "mondrian.xpm"
 #include "dragicon.xpm"
 #endif
@@ -83,7 +83,6 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
     PrepareDC( dc );
 
     DrawShapes(dc);
     PrepareDC( dc );
 
     DrawShapes(dc);
-
 }
 
 void MyCanvas::OnEraseBackground(wxEraseEvent& event)
 }
 
 void MyCanvas::OnEraseBackground(wxEraseEvent& event)
@@ -184,14 +183,14 @@ void MyCanvas::OnMouseEvent(wxMouseEvent& event)
                 }
                 case SHAPE_DRAG_TEXT:
                 {
                 }
                 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?
                     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));
                     wxIcon icon(dragicon_xpm);
 #else
                     wxIcon icon(wxICON(dragicon));
@@ -320,7 +319,6 @@ DragShape* MyCanvas::FindShape(const wxPoint& pt) const
 }
 
 // MyFrame
 }
 
 // MyFrame
-
 IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
 
 BEGIN_EVENT_TABLE(MyFrame,wxFrame)
 IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
 
 BEGIN_EVENT_TABLE(MyFrame,wxFrame)
@@ -384,10 +382,9 @@ bool MyApp::OnInit()
     wxImage image;
     if (image.LoadFile("backgrnd.png", wxBITMAP_TYPE_PNG))
     {
     wxImage image;
     if (image.LoadFile("backgrnd.png", wxBITMAP_TYPE_PNG))
     {
-        m_background = image.ConvertToBitmap();
+        m_background = wxBitmap(image);
     }
 
     }
 
-
     MyFrame *frame = new MyFrame();
 
     wxString rootName("shape0");
     MyFrame *frame = new MyFrame();
 
     wxString rootName("shape0");
@@ -396,10 +393,13 @@ bool MyApp::OnInit()
     for (i = 1; i < 4; i++)
     {
         wxString filename;
     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))
         {
         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)
             newShape->SetPosition(wxPoint(i*50, i*50));
 
             if (i == 2)
@@ -434,6 +434,11 @@ bool MyApp::OnInit()
     return TRUE;
 }
 
     return TRUE;
 }
 
+int MyApp::OnExit()
+{
+    return 0;
+}
+
 bool MyApp::TileBitmap(const wxRect& rect, wxDC& dc, wxBitmap& bitmap)
 {
     int w = bitmap.GetWidth();
 bool MyApp::TileBitmap(const wxRect& rect, wxDC& dc, wxBitmap& bitmap)
 {
     int w = bitmap.GetWidth();