if (!ret)
{
- wxLogDebug( wxT( "Drop target: OnDrop returned TRUE") );
+ wxLogDebug( wxT( "Drop target: OnDrop returned FALSE") );
/* cancel the whole thing */
gtk_drag_finish( context,
// disable the debug message from GetMatchingPair() - there are too many
// of them otherwise
-#ifdef __WXDEBUG__
+#if 0 //def __WXDEBUG__
wxLogNull noLog;
#endif // Debug
wxDragResult def )
{
if (!m_dataObject)
- return FALSE;
+ return wxDragNone;
if (GetMatchingPair() == (GdkAtom) 0)
- return FALSE;
+ return wxDragNone;
return GetData() ? def : wxDragNone;
}
wxDataFormat format( formatAtom );
#ifdef __WXDEBUG__
- char *name = gdk_atom_name( formatAtom );
- wxLogDebug("Drop target: drag has format: %s", name ? name : "unnamed");
+ wxLogDebug( wxT("Drop target: drag has format: %s"), format.GetId().c_str() );
#endif // Debug
if (m_dataObject->IsSupportedFormat( format ))
if (!m_dataObject->IsSupportedFormat( dragFormat ))
return FALSE;
- if (dragFormat.GetType() == wxDF_TEXT)
- {
- wxTextDataObject *text_object = (wxTextDataObject*)m_dataObject;
- text_object->SetText( (const char*)m_dragData->data );
- return TRUE;
- }
-
- if (dragFormat.GetType() == wxDF_FILENAME)
- {
- wxFileDataObject *file_object = (wxFileDataObject*)m_dataObject;
- file_object->SetData( 0, (const char*)m_dragData->data );
- return TRUE;
- }
-
m_dataObject->SetData( dragFormat, (size_t)m_dragData->length, (const void*)m_dragData->data );
return TRUE;
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
- GdkDragContext *context,
+ GdkDragContext *WXUNUSED(context),
GtkSelectionData *selection_data,
guint WXUNUSED(info),
guint WXUNUSED(time),
if (source->m_dragContext->action == GDK_ACTION_COPY) action = wxDragCopy;
if (source->m_dragContext->action == GDK_ACTION_MOVE) action = wxDragMove;
- source->GiveFeedback( action, FALSE );
+ source->GiveFeedback( action );
return 0;
}
gtk_drag_set_icon_widget( context, m_iconWindow, hot_x, hot_y );
}
-wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) )
+wxDragResult wxDropSource::DoDragDrop( bool allowMove )
{
- wxASSERT_MSG( m_data, wxT("wxDragSource: no data") );
+ wxASSERT_MSG( m_data, wxT("Drop source: no data") );
if (!m_data)
return (wxDragResult) wxDragNone;
for (size_t i = 0; i < m_data->GetFormatCount(); i++)
{
GdkAtom atom = array[i];
- wxLogDebug( wxT("Supported atom %s"), gdk_atom_name( atom ) );
+ wxLogDebug( wxT("Drop source: Supported atom %s"), gdk_atom_name( atom ) );
gtk_target_list_add( target_list, atom, 0, 0 );
}
delete[] array;
event.x = x;
event.y = y;
event.state = state;
- event.time = GDK_CURRENT_TIME;
+ event.time = (guint32)GDK_CURRENT_TIME;
/* GTK wants to know which button was pressed which caused the dragging */
int button_number = 0;
/* don't start dragging if no button is down */
if (button_number)
{
+ GdkDragAction action = GDK_ACTION_COPY;
+ if (allowMove) action = (GdkDragAction)(GDK_ACTION_MOVE|GDK_ACTION_COPY);
GdkDragContext *context = gtk_drag_begin( m_widget,
target_list,
- (GdkDragAction)(GDK_ACTION_COPY|GDK_ACTION_MOVE),
+ action,
button_number, /* number of mouse button which started drag */
(GdkEvent*) &event );