X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/68567a967bc8afd37a40cb9a7ee5021b9ee6cd96..14e9ff98e683a46d71e2fe19306f2c26086ddb21:/src/gtk/dnd.cpp diff --git a/src/gtk/dnd.cpp b/src/gtk/dnd.cpp index ba5dbeeec6..aadec6a638 100644 --- a/src/gtk/dnd.cpp +++ b/src/gtk/dnd.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp +// Name: src/gtk/dnd.cpp // Purpose: wxDropTarget class // Author: Robert Roebling // Id: $Id$ @@ -10,17 +10,18 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#include "wx/dnd.h" -#include "wx/log.h" - - #if wxUSE_DRAG_AND_DROP -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/intl.h" -#include "wx/utils.h" +#include "wx/dnd.h" + +#ifndef WX_PRECOMP + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/app.h" + #include "wx/utils.h" + #include "wx/window.h" + #include "wx/gdicmn.h" +#endif #include "wx/gtk/private.h" @@ -29,20 +30,6 @@ #include #include -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// thread system -//----------------------------------------------------------------------------- - -#if wxUSE_THREADS -#endif - //---------------------------------------------------------------------------- // global data //---------------------------------------------------------------------------- @@ -350,7 +337,7 @@ static gboolean target_drag_drop( GtkWidget *widget, } else { - wxLogTrace(TRACE_DND, wxT( "Drop target: OnDrop returned TRUE") ); + wxLogTrace(TRACE_DND, wxT( "Drop target: OnDrop returned true") ); #if wxUSE_THREADS /* disable GUI threads */ @@ -359,7 +346,7 @@ static gboolean target_drag_drop( GtkWidget *widget, GdkAtom format = drop_target->GetMatchingPair(); // this does happen somehow, see bug 555111 - wxCHECK_MSG( format, FALSE, _T("no matching GdkAtom for format?") ) + wxCHECK_MSG( format, FALSE, _T("no matching GdkAtom for format?") ); /* GdkDragAction action = GDK_ACTION_MOVE; @@ -428,7 +415,7 @@ static void target_drag_data_received( GtkWidget *WXUNUSED(widget), if ( wxIsDragResultOk( drop_target->OnData( x, y, result ) ) ) { - wxLogTrace(TRACE_DND, wxT( "Drop target: OnData returned TRUE") ); + wxLogTrace(TRACE_DND, wxT( "Drop target: OnData returned true") ); /* tell GTK that data transfer was successful */ gtk_drag_finish( context, TRUE, FALSE, time ); @@ -547,17 +534,14 @@ void wxDropTarget::UnregisterWidget( GtkWidget *widget ) gtk_drag_dest_unset( widget ); - 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 ); + g_signal_handlers_disconnect_by_func (widget, + (gpointer) target_drag_leave, this); + g_signal_handlers_disconnect_by_func (widget, + (gpointer) target_drag_motion, this); + g_signal_handlers_disconnect_by_func (widget, + (gpointer) target_drag_drop, this); + g_signal_handlers_disconnect_by_func (widget, + (gpointer) target_drag_data_received, this); } void wxDropTarget::RegisterWidget( GtkWidget *widget ) @@ -580,17 +564,17 @@ void wxDropTarget::RegisterWidget( GtkWidget *widget ) 0, /* number of targets = 0 */ (GdkDragAction) 0 ); /* we don't supply any actions here */ - gtk_signal_connect( GTK_OBJECT(widget), "drag_leave", - GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this ); + g_signal_connect (widget, "drag_leave", + G_CALLBACK (target_drag_leave), this); - gtk_signal_connect( GTK_OBJECT(widget), "drag_motion", - GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this ); + g_signal_connect (widget, "drag_motion", + G_CALLBACK (target_drag_motion), this); - gtk_signal_connect( GTK_OBJECT(widget), "drag_drop", - GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this ); + g_signal_connect (widget, "drag_drop", + G_CALLBACK (target_drag_drop), this); - gtk_signal_connect( GTK_OBJECT(widget), "drag_data_received", - GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this ); + g_signal_connect (widget, "drag_data_received", + G_CALLBACK (target_drag_data_received), this); } //---------------------------------------------------------------------------- @@ -722,8 +706,7 @@ extern "C" { static gint gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDropSource *source ) { - if (g_isIdle) - wxapp_install_idle_handler(); + // don't need to install idle handler, its done from "event" signal source->GiveFeedback( ConvertFromGTK(source->m_dragContext->action) ); @@ -814,7 +797,7 @@ void wxDropSource::PrepareIcon( int action, GdkDragContext *context ) GdkPixmap *pixmap = icon->GetPixmap(); gint width,height; - gdk_window_get_size (pixmap, &width, &height); + gdk_drawable_get_size (pixmap, &width, &height); GdkColormap *colormap = gtk_widget_get_colormap( m_widget ); gtk_widget_push_colormap (colormap); @@ -825,11 +808,11 @@ void wxDropSource::PrepareIcon( int action, GdkDragContext *context ) gtk_widget_pop_colormap (); - gtk_widget_set_usize (m_iconWindow, width, height); + gtk_widget_set_size_request (m_iconWindow, width, height); gtk_widget_realize (m_iconWindow); - gtk_signal_connect( GTK_OBJECT(m_iconWindow), "configure_event", - GTK_SIGNAL_FUNC(gtk_dnd_window_configure_callback), (gpointer)this ); + g_signal_connect (m_iconWindow, "configure_event", + G_CALLBACK (gtk_dnd_window_configure_callback), this); gdk_window_set_back_pixmap (m_iconWindow->window, pixmap, FALSE); @@ -934,29 +917,34 @@ void wxDropSource::RegisterWindow() { if (!m_widget) return; - gtk_signal_connect( GTK_OBJECT(m_widget), "drag_data_get", - GTK_SIGNAL_FUNC (source_drag_data_get), (gpointer) this); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_data_delete", - GTK_SIGNAL_FUNC (source_drag_data_delete), (gpointer) this ); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_begin", - GTK_SIGNAL_FUNC (source_drag_begin), (gpointer) this ); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_end", - GTK_SIGNAL_FUNC (source_drag_end), (gpointer) this ); + g_signal_connect (m_widget, "drag_data_get", + G_CALLBACK (source_drag_data_get), this); + g_signal_connect (m_widget, "drag_data_delete", + G_CALLBACK (source_drag_data_delete), this); + g_signal_connect (m_widget, "drag_begin", + G_CALLBACK (source_drag_begin), this); + g_signal_connect (m_widget, "drag_end", + G_CALLBACK (source_drag_end), this); } void wxDropSource::UnregisterWindow() { - if (!m_widget) return; + if (!m_widget) + return; - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_data_get), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_data_delete), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_begin), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_end), (gpointer) this ); + g_signal_handlers_disconnect_by_func (m_widget, + (gpointer) source_drag_data_get, + this); + g_signal_handlers_disconnect_by_func (m_widget, + (gpointer) source_drag_data_delete, + this); + g_signal_handlers_disconnect_by_func (m_widget, + (gpointer) source_drag_begin, + this); + g_signal_handlers_disconnect_by_func (m_widget, + (gpointer) source_drag_end, + this); } #endif