Use g_signal* instead of deprecated gtk_signal*. Use proper casts for the arguments.

Worth norting from the GTK+ docs: "For future usage, direct use of the GSignal API is recommended, this avoids
significant performance hits where GtkArg structures have to be converted into GValues."


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mart Raudsepp
2006-01-22 23:28:58 +00:00
parent ce61519034
commit 9fa72bd2a6
32 changed files with 485 additions and 530 deletions

View File

@@ -1147,7 +1147,7 @@ static gint gtk_window_key_press_callback( GtkWidget *widget,
if (ret)
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" );
g_signal_stop_emission_by_name (widget, "key_press_event");
return TRUE;
}
@@ -1242,7 +1242,7 @@ static gint gtk_window_key_release_callback( GtkWidget *widget,
if ( !win->GetEventHandler()->ProcessEvent( event ) )
return FALSE;
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" );
g_signal_stop_emission_by_name (widget, "key_release_event");
return TRUE;
}
}
@@ -1550,7 +1550,7 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "button_press_event" );
g_signal_stop_emission_by_name (widget, "button_press_event");
return TRUE;
}
@@ -1629,7 +1629,7 @@ static gint gtk_window_button_release_callback( GtkWidget *widget,
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "button_release_event" );
g_signal_stop_emission_by_name (widget, "button_release_event");
return TRUE;
}
@@ -1705,7 +1705,7 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget,
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "motion_notify_event" );
g_signal_stop_emission_by_name (widget, "motion_notify_event");
return TRUE;
}
@@ -1762,7 +1762,7 @@ static gint gtk_window_wheel_callback (GtkWidget * widget,
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "scroll_event" );
g_signal_stop_emission_by_name (widget, "scroll_event");
return TRUE;
}
@@ -1845,7 +1845,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget,
if ( DoSendFocusEvents(win) )
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_in_event" );
g_signal_stop_emission_by_name (widget, "focus_in_event");
return TRUE;
}
}
@@ -1950,7 +1950,7 @@ gint gtk_window_enter_callback( GtkWidget *widget,
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "enter_notify_event" );
g_signal_stop_emission_by_name (widget, "enter_notify_event");
return TRUE;
}
@@ -2002,7 +2002,7 @@ static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "leave_notify_event" );
g_signal_stop_emission_by_name (widget, "leave_notify_event");
return TRUE;
}
@@ -2555,39 +2555,35 @@ bool wxWindowGTK::Create( wxWindow *parent,
m_vAdjust->step_increment = 1.0;
m_vAdjust->page_increment = 1.0;
m_vAdjust->page_size = 5.0;
gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" );
g_signal_emit_by_name (m_vAdjust, "changed");
m_hAdjust->lower = 0.0;
m_hAdjust->upper = 1.0;
m_hAdjust->value = 0.0;
m_hAdjust->step_increment = 1.0;
m_hAdjust->page_increment = 1.0;
m_hAdjust->page_size = 5.0;
gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" );
g_signal_emit_by_name (m_hAdjust, "changed");
// these handlers block mouse events to any window during scrolling such as
// motion events and prevent GTK and wxWidgets from fighting over where the
// slider should be
gtk_signal_connect( GTK_OBJECT(scrolledWindow->vscrollbar), "button_press_event",
(GtkSignalFunc)gtk_scrollbar_button_press_callback, (gpointer) this );
gtk_signal_connect( GTK_OBJECT(scrolledWindow->hscrollbar), "button_press_event",
(GtkSignalFunc)gtk_scrollbar_button_press_callback, (gpointer) this );
gtk_signal_connect( GTK_OBJECT(scrolledWindow->vscrollbar), "button_release_event",
(GtkSignalFunc)gtk_scrollbar_button_release_callback, (gpointer) this );
gtk_signal_connect( GTK_OBJECT(scrolledWindow->hscrollbar), "button_release_event",
(GtkSignalFunc)gtk_scrollbar_button_release_callback, (gpointer) this );
g_signal_connect (scrolledWindow->vscrollbar, "button_press_event",
G_CALLBACK (gtk_scrollbar_button_press_callback), this);
g_signal_connect (scrolledWindow->hscrollbar, "button_press_event",
G_CALLBACK (gtk_scrollbar_button_press_callback), this);
g_signal_connect (scrolledWindow->vscrollbar, "button_release_event",
G_CALLBACK (gtk_scrollbar_button_release_callback), this);
g_signal_connect (scrolledWindow->hscrollbar, "button_release_event",
G_CALLBACK (gtk_scrollbar_button_release_callback), this);
// these handlers get notified when screen updates are required either when
// scrolling or when the window size (and therefore scrollbar configuration)
// has changed
gtk_signal_connect( GTK_OBJECT(m_hAdjust), "value_changed",
(GtkSignalFunc) gtk_window_hscroll_callback, (gpointer) this );
gtk_signal_connect( GTK_OBJECT(m_vAdjust), "value_changed",
(GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this );
g_signal_connect (m_hAdjust, "value_changed",
G_CALLBACK (gtk_window_hscroll_callback), this);
g_signal_connect (m_vAdjust, "value_changed",
G_CALLBACK (gtk_window_vscroll_callback), this);
gtk_widget_show( m_wxwindow );
@@ -2621,10 +2617,12 @@ wxWindowGTK::~wxWindowGTK()
// propagated to this (soon to be) dead object
if (m_focusWidget != NULL)
{
gtk_signal_disconnect_by_func( GTK_OBJECT(m_focusWidget),
(GtkSignalFunc) gtk_window_focus_in_callback, (gpointer) this );
gtk_signal_disconnect_by_func( GTK_OBJECT(m_focusWidget),
(GtkSignalFunc) gtk_window_focus_out_callback, (gpointer) this );
g_signal_handlers_disconnect_by_func (m_focusWidget,
(gpointer) gtk_window_focus_in_callback,
this);
g_signal_handlers_disconnect_by_func (m_focusWidget,
(gpointer) gtk_window_focus_out_callback,
this);
}
if (m_widget)
@@ -2680,8 +2678,8 @@ void wxWindowGTK::PostCreation()
gtk_pizza_set_external( GTK_PIZZA(m_wxwindow), TRUE );
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "expose_event",
GTK_SIGNAL_FUNC(gtk_window_expose_callback), (gpointer)this );
g_signal_connect (m_wxwindow, "expose_event",
G_CALLBACK (gtk_window_expose_callback), this);
// gtk_widget_set_redraw_on_allocate( GTK_WIDGET(m_wxwindow), !HasFlag( wxFULL_REPAINT_ON_RESIZE ) );
}
@@ -2692,13 +2690,12 @@ void wxWindowGTK::PostCreation()
// Cannot handle drawing preedited text yet
gtk_im_context_set_use_preedit( m_imData->context, FALSE );
g_signal_connect (G_OBJECT (m_imData->context), "commit",
g_signal_connect (m_imData->context, "commit",
G_CALLBACK (gtk_wxwindow_commit_cb), this);
// these are called when the "sunken" or "raised" borders are drawn
gtk_signal_connect( GTK_OBJECT(m_widget), "expose_event",
GTK_SIGNAL_FUNC(gtk_window_own_expose_callback), (gpointer)this );
g_signal_connect (m_widget, "expose_event",
G_CALLBACK (gtk_window_own_expose_callback), this);
}
// focus handling
@@ -2708,11 +2705,10 @@ void wxWindowGTK::PostCreation()
if (m_focusWidget == NULL)
m_focusWidget = m_widget;
gtk_signal_connect( GTK_OBJECT(m_focusWidget), "focus_in_event",
GTK_SIGNAL_FUNC(gtk_window_focus_in_callback), (gpointer)this );
gtk_signal_connect_after( GTK_OBJECT(m_focusWidget), "focus_out_event",
GTK_SIGNAL_FUNC(gtk_window_focus_out_callback), (gpointer)this );
g_signal_connect (m_focusWidget, "focus_in_event",
G_CALLBACK (gtk_window_focus_in_callback), this);
g_signal_connect_after (m_focusWidget, "focus_out_event",
G_CALLBACK (gtk_window_focus_out_callback), this);
}
// connect to the various key and mouse handlers
@@ -2723,31 +2719,31 @@ void wxWindowGTK::PostCreation()
/* We cannot set colours, fonts and cursors before the widget has
been realized, so we do this directly after realization */
gtk_signal_connect( GTK_OBJECT(connect_widget), "realize",
GTK_SIGNAL_FUNC(gtk_window_realized_callback), (gpointer) this );
g_signal_connect (connect_widget, "realize",
G_CALLBACK (gtk_window_realized_callback), this);
if (m_wxwindow)
{
// Catch native resize events
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "size_allocate",
GTK_SIGNAL_FUNC(gtk_window_size_callback), (gpointer)this );
g_signal_connect (m_wxwindow, "size_allocate",
G_CALLBACK (gtk_window_size_callback), this);
// Initialize XIM support
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize",
GTK_SIGNAL_FUNC(gtk_wxwindow_realized_callback), (gpointer) this );
g_signal_connect (m_wxwindow, "realize",
G_CALLBACK (gtk_wxwindow_realized_callback), this);
// And resize XIM window
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "size_allocate",
GTK_SIGNAL_FUNC(gtk_wxwindow_size_callback), (gpointer)this );
g_signal_connect (m_wxwindow, "size_allocate",
G_CALLBACK (gtk_wxwindow_size_callback), this);
}
if (GTK_IS_COMBO(m_widget))
{
GtkCombo *gcombo = GTK_COMBO(m_widget);
gtk_signal_connect( GTK_OBJECT(gcombo->entry), "size_request",
GTK_SIGNAL_FUNC(wxgtk_combo_size_request_callback),
(gpointer) this );
g_signal_connect (gcombo->entry, "size_request",
G_CALLBACK (wxgtk_combo_size_request_callback),
this);
}
else
{
@@ -2755,9 +2751,9 @@ void wxWindowGTK::PostCreation()
// GTK controls, such as the toolbar. With this callback, the
// toolbar gets to know the correct size (the one set by the
// programmer). Sadly, it misbehaves for wxComboBox.
gtk_signal_connect( GTK_OBJECT(m_widget), "size_request",
GTK_SIGNAL_FUNC(wxgtk_window_size_request_callback),
(gpointer) this );
g_signal_connect (m_widget, "size_request",
G_CALLBACK (wxgtk_window_size_request_callback),
this);
}
InheritAttributes();
@@ -2772,31 +2768,24 @@ void wxWindowGTK::PostCreation()
void wxWindowGTK::ConnectWidget( GtkWidget *widget )
{
gtk_signal_connect( GTK_OBJECT(widget), "key_press_event",
GTK_SIGNAL_FUNC(gtk_window_key_press_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(widget), "key_release_event",
GTK_SIGNAL_FUNC(gtk_window_key_release_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(widget), "button_press_event",
GTK_SIGNAL_FUNC(gtk_window_button_press_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(widget), "button_release_event",
GTK_SIGNAL_FUNC(gtk_window_button_release_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(widget), "motion_notify_event",
GTK_SIGNAL_FUNC(gtk_window_motion_notify_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(widget), "scroll_event",
GTK_SIGNAL_FUNC(gtk_window_wheel_callback), (gpointer)this );
g_signal_connect(widget, "popup_menu",
G_CALLBACK(wxgtk_window_popup_menu_callback), this);
gtk_signal_connect( GTK_OBJECT(widget), "enter_notify_event",
GTK_SIGNAL_FUNC(gtk_window_enter_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(widget), "leave_notify_event",
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
g_signal_connect (widget, "key_press_event",
G_CALLBACK (gtk_window_key_press_callback), this);
g_signal_connect (widget, "key_release_event",
G_CALLBACK (gtk_window_key_release_callback), this);
g_signal_connect (widget, "button_press_event",
G_CALLBACK (gtk_window_button_press_callback), this);
g_signal_connect (widget, "button_release_event",
G_CALLBACK (gtk_window_button_release_callback), this);
g_signal_connect (widget, "motion_notify_event",
G_CALLBACK (gtk_window_motion_notify_callback), this);
g_signal_connect (widget, "scroll_event",
G_CALLBACK (gtk_window_wheel_callback), this);
g_signal_connect (widget, "popup_menu",
G_CALLBACK (wxgtk_window_popup_menu_callback), this);
g_signal_connect (widget, "enter_notify_event",
G_CALLBACK (gtk_window_enter_callback), this);
g_signal_connect (widget, "leave_notify_event",
G_CALLBACK (gtk_window_leave_callback), this);
}
bool wxWindowGTK::Destroy()
@@ -4087,21 +4076,21 @@ void wxWindowGTK::SetScrollbar( int orient, int pos, int thumbVisible,
}
if (orient == wxHORIZONTAL)
gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" );
g_signal_emit_by_name (m_hAdjust, "changed");
else
gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" );
g_signal_emit_by_name (m_vAdjust, "changed");
}
void wxWindowGTK::GtkUpdateScrollbar(int orient)
{
GtkAdjustment *adj = orient == wxHORIZONTAL ? m_hAdjust : m_vAdjust;
GtkSignalFunc fn = orient == wxHORIZONTAL
? (GtkSignalFunc)gtk_window_hscroll_callback
: (GtkSignalFunc)gtk_window_vscroll_callback;
gpointer fn = orient == wxHORIZONTAL
? (gpointer) gtk_window_hscroll_callback
: (gpointer) gtk_window_vscroll_callback;
gtk_signal_disconnect_by_func(GTK_OBJECT(adj), fn, (gpointer)this);
gtk_signal_emit_by_name(GTK_OBJECT(adj), "value_changed");
gtk_signal_connect(GTK_OBJECT(adj), "value_changed", fn, (gpointer)this);
g_signal_handlers_disconnect_by_func (adj, fn, this);
g_signal_emit_by_name (adj, "value_changed");
g_signal_connect (adj, "value_changed", G_CALLBACK (fn), this);
}
void wxWindowGTK::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )