+// MyDragImage
+// A derived class is required since we're overriding UpdateBackingFromWindow,
+// for compatibility with Mac OS X (Core Graphics) which does not support blitting
+// from a window.
+
+class MyDragImage: public wxDragImage
+{
+public:
+ MyDragImage(MyCanvas* canvas): m_canvas(canvas) {}
+
+ MyDragImage(MyCanvas* canvas, const wxBitmap& image, const wxCursor& cursor = wxNullCursor):
+ wxDragImage(image, cursor), m_canvas(canvas)
+ {
+ }
+
+ MyDragImage(MyCanvas* canvas, const wxIcon& image, const wxCursor& cursor = wxNullCursor):
+ wxDragImage(image, cursor), m_canvas(canvas)
+ {
+ }
+
+ MyDragImage(MyCanvas* canvas, const wxString& str, const wxCursor& cursor = wxNullCursor):
+ wxDragImage(str, cursor), m_canvas(canvas)
+ {
+ }
+
+ // On some platforms, notably Mac OS X with Core Graphics, we can't blit from
+ // a window, so we need to draw the background explicitly.
+ virtual bool UpdateBackingFromWindow(wxDC& windowDC, wxMemoryDC& destDC, const wxRect& sourceRect,
+ const wxRect& destRect) const;
+
+protected:
+ MyCanvas* m_canvas;
+};
+