+//----------------------------------------------------------------------------
+// global data
+//----------------------------------------------------------------------------
+
+extern bool g_blockEventsOnDrag;
+
+// the flags used for the last DoDragDrop()
+static long gs_flagsForDrag = 0;
+
+// the trace mask we use with wxLogTrace() - call
+// wxLog::AddTraceMask(TRACE_DND) to enable the trace messages from here
+// (there are quite a few of them, so don't enable this by default)
+static const wxChar *TRACE_DND = _T("dnd");
+
+//----------------------------------------------------------------------------
+// standard icons
+//----------------------------------------------------------------------------
+
+/* XPM */
+static const char * page_xpm[] = {
+/* width height ncolors chars_per_pixel */
+"32 32 5 1",
+/* colors */
+" s None c None",
+". c black",
+"X c wheat",
+"o c tan",
+"O c #6699FF",
+/* pixels */
+" ................... ",
+" .XXXXXXXXXXXXXXXXX.. ",
+" .XXXXXXXXXXXXXXXXX.o. ",
+" .XXXXXXXXXXXXXXXXX.oo. ",
+" .XXXXXXXXXXXXXXXXX.ooo. ",
+" .XXXXXXXXXXXXXXXXX.oooo. ",
+" .XXXXXXXXXXXXXXXXX....... ",
+" .XXXXXOOOOOOOOOOXXXooooo. ",
+" .XXXXXXXXXXXXXXXXXXooooo. ",
+" .XXXXXOOOOOOOOOOXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXXOOOOOOOOOXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXOOOOOOOOOOXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXOOOOOOOOOOXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXXOOOOOOOOOXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXOOOOOOOOOOXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXOOOOOOOOOOXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXOOOOOOOOOOXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXOOOOOOOXXXXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" .XXXXXXXXXXXXXXXXXXXXXXX. ",
+" ......................... "};
+
+
+// ============================================================================
+// private functions
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// convert between GTK+ and wxWindows DND constants
+// ----------------------------------------------------------------------------
+
+static wxDragResult ConvertFromGTK(long action)
+{
+ switch ( action )
+ {
+ case GDK_ACTION_COPY:
+ return wxDragCopy;
+
+ case GDK_ACTION_LINK:
+ return wxDragLink;
+
+ case GDK_ACTION_MOVE:
+ return wxDragMove;
+ }