-// ----------------------------------------------------------------------------
-// "drag_leave"
-// ----------------------------------------------------------------------------
-
-static void target_drag_leave( GtkWidget *WXUNUSED(widget),
- GdkDragContext *WXUNUSED(context),
- guint WXUNUSED(time) )
-{
- printf( "leave.\n" );
-}
-
-// ----------------------------------------------------------------------------
-// "drag_motion"
-// ----------------------------------------------------------------------------
-
-static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
- GdkDragContext *context,
- gint WXUNUSED(x),
- gint WXUNUSED(y),
- guint time )
-{
- printf( "motion.\n" );
- gdk_drag_status( context, context->suggested_action, time );
- return TRUE;
-}
-
-// ----------------------------------------------------------------------------
-// "drag_drop"
-// ----------------------------------------------------------------------------
-
-static gboolean target_drag_drop( GtkWidget *widget,
- GdkDragContext *context,
- gint x,
- gint y,
- guint time )
-{
- printf( "drop at: %d,%d.\n", x, y );
-
- if (context->targets)
- {
- gtk_drag_get_data( widget,
- context,
- GPOINTER_TO_INT (context->targets->data),
- time );
- }
- return FALSE;
-}
-
-// ----------------------------------------------------------------------------
-// "drag_data_received"
-// ----------------------------------------------------------------------------
-
-static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
- GdkDragContext *context,
- gint x,
- gint y,
- GtkSelectionData *data,
- guint WXUNUSED(info),
- guint time )
-{
- printf( "data receive at: %d,%d.\n", x, y );
-
- if ((data->length >= 0) && (data->format == 8))
- {
- wxString str = (const char*)data->data;
- printf( "Received %s\n.", WXSTRINGCAST str );
- gtk_drag_finish( context, TRUE, FALSE, time );
- return;
- }
-
- gtk_drag_finish (context, FALSE, FALSE, time);
-}
-
-// ----------------------------------------------------------------------------
-// wxDropTarget
-// ----------------------------------------------------------------------------
-
-wxDropTarget::wxDropTarget()
-{
-}
-
-wxDropTarget::~wxDropTarget()
-{
-}
-
-void wxDropTarget::UnregisterWidget( GtkWidget *widget )
-{
- wxCHECK_RET( widget != NULL, "unregister widget is NULL" );
-
- gtk_drag_dest_set( widget,
- (GtkDestDefaults) 0,
- (GtkTargetEntry*) NULL,
- 0,
- (GdkDragAction) 0 );
-
- gtk_signal_disconnect_by_func( GTK_OBJECT(widget),
- GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this );
-
- gtk_signal_disconnect_by_func( GTK_OBJECT(widget),
- GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this );
-
- gtk_signal_disconnect_by_func( GTK_OBJECT(widget),
- GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this );
-
- gtk_signal_disconnect_by_func( GTK_OBJECT(widget),
- GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this );
-}
-
-void wxDropTarget::RegisterWidget( GtkWidget *widget )
-{
- wxCHECK_RET( widget != NULL, "register widget is NULL" );
-
- GtkTargetEntry format;
- format.info = 0;
- format.flags = 0;
-
- int valid = 0;
- for ( size_t i = 0; i < GetFormatCount(); i++ )
- {
- wxDataFormat df = GetFormat( i );
- switch (df)
- {
- case wxDF_TEXT:
- format.target = "text/plain";
- valid++;
- break;
- case wxDF_FILENAME:
- format.target = "file:ALL";
- valid++;
- break;
- default:
- break;
- }
- }
-
- wxASSERT_MSG( valid != 0, "No valid DnD format supported." );
-
- gtk_drag_dest_set( widget,
- GTK_DEST_DEFAULT_ALL,
- &format,
- 1,
- (GdkDragAction)(GDK_ACTION_COPY | GDK_ACTION_MOVE) );
-
- gtk_signal_connect( GTK_OBJECT(widget), "drag_leave",
- GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this );
-
- gtk_signal_connect( GTK_OBJECT(widget), "drag_motion",
- GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this );
-
- gtk_signal_connect( GTK_OBJECT(widget), "drag_drop",
- GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this );
-
- gtk_signal_connect( GTK_OBJECT(widget), "drag_data_received",
- GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this );
-}
-
-// ----------------------------------------------------------------------------
-// wxTextDropTarget
-// ----------------------------------------------------------------------------
-
-bool wxTextDropTarget::OnDrop( long x, long y, const void *data, size_t WXUNUSED(size) )
-{
- OnDropText( x, y, (const char*)data );
- return TRUE;
-}