// "drag_leave"
// ----------------------------------------------------------------------------
+extern "C" {
static void target_drag_leave( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
guint WXUNUSED(time),
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
}
+}
// ----------------------------------------------------------------------------
// "drag_motion"
// ----------------------------------------------------------------------------
+extern "C" {
static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
// only good if we don't have our own preferences - but also the actions
// field
wxDragResult result;
+ if (drop_target->GetDefaultAction() == wxDragNone)
+ {
+ // use default action set by wxDropSource::DoDragDrop()
if ( (gs_flagsForDrag & wxDrag_DefaultMove) == wxDrag_DefaultMove &&
(context->actions & GDK_ACTION_MOVE ) )
{
result = wxDragCopy;
}
}
+ }
+ else if (drop_target->GetDefaultAction() == wxDragMove &&
+ (context->actions & GDK_ACTION_MOVE))
+ {
+ result = wxDragMove;
+ }
+ else
+ {
+ if (context->actions & GDK_ACTION_COPY)
+ result = wxDragCopy;
+ else if (context->actions & GDK_ACTION_MOVE)
+ result = wxDragMove;
+ else
+ result = wxDragNone;
+ }
if (drop_target->m_firstMotion)
{
if (ret)
{
GdkDragAction action;
- if ((result == wxDragCopy) && (context->actions & GDK_ACTION_COPY) ||
- (result == wxDragMove) && !(context->actions & GDK_ACTION_MOVE) ||
- (result == wxDragLink) && !(context->actions & GDK_ACTION_LINK))
+ if (result == wxDragCopy)
action = GDK_ACTION_COPY;
else if (result == wxDragLink)
action = GDK_ACTION_LINK;
return ret;
}
+}
// ----------------------------------------------------------------------------
// "drag_drop"
// ----------------------------------------------------------------------------
+extern "C" {
static gboolean target_drag_drop( GtkWidget *widget,
GdkDragContext *context,
gint x,
return ret;
}
+}
// ----------------------------------------------------------------------------
// "drag_data_received"
// ----------------------------------------------------------------------------
+extern "C" {
static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
gint x,
/* after this, invalidate the drop_target's drag data */
drop_target->SetDragData( (GtkSelectionData*) NULL );
}
+}
//----------------------------------------------------------------------------
// wxDropTarget
// "drag_data_get"
//----------------------------------------------------------------------------
+extern "C" {
static void
source_drag_data_get (GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
delete[] d;
}
+}
//----------------------------------------------------------------------------
// "drag_data_delete"
//----------------------------------------------------------------------------
+extern "C" {
static void source_drag_data_delete( GtkWidget *WXUNUSED(widget),
GdkDragContext *context,
wxDropSource *WXUNUSED(drop_source) )
// printf( "Drag source: drag_data_delete\n" );
}
+}
//----------------------------------------------------------------------------
// "drag_begin"
//----------------------------------------------------------------------------
+extern "C" {
static void source_drag_begin( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *WXUNUSED(drop_source) )
// printf( "Drag source: drag_begin.\n" );
}
+}
//----------------------------------------------------------------------------
// "drag_end"
//----------------------------------------------------------------------------
+extern "C" {
static void source_drag_end( GtkWidget *WXUNUSED(widget),
GdkDragContext *WXUNUSED(context),
wxDropSource *drop_source )
drop_source->m_waiting = FALSE;
}
+}
//-----------------------------------------------------------------------------
// "configure_event" from m_iconWindow
//-----------------------------------------------------------------------------
+extern "C" {
static gint
gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source )
{
return 0;
}
+}
//---------------------------------------------------------------------------
// wxDropSource