X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/378b042b98ab36060ad0f1146819fbb791f0d541..8ca1a013e4e699724040ff1f514dab3b4a11d3c9:/src/gtk/radiobox.cpp diff --git a/src/gtk/radiobox.cpp b/src/gtk/radiobox.cpp index e84d215469..b54b7ccbc0 100644 --- a/src/gtk/radiobox.cpp +++ b/src/gtk/radiobox.cpp @@ -27,8 +27,6 @@ #include "wx/gtk/private.h" #include -#include "wx/gtk/win_gtk.h" - //----------------------------------------------------------------------------- // wxGTKRadioButtonInfo //----------------------------------------------------------------------------- @@ -49,7 +47,7 @@ public: //----------------------------------------------------------------------------- #include "wx/listimpl.cpp" -WX_DEFINE_LIST( wxRadioBoxButtonsInfoList ); +WX_DEFINE_LIST( wxRadioBoxButtonsInfoList ) extern bool g_blockEventsOnDrag; @@ -60,8 +58,6 @@ extern bool g_blockEventsOnDrag; extern "C" { static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBox *rb ) { - if (g_isIdle) wxapp_install_idle_handler(); - if (!rb->m_hasVMT) return; if (g_blockEventsOnDrag) return; @@ -82,8 +78,6 @@ static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioBo extern "C" { static gint gtk_radiobox_keypress_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxRadioBox *rb ) { - // don't need to install idle handler, its done from "event" signal - if (!rb->m_hasVMT) return FALSE; if (g_blockEventsOnDrag) return FALSE; @@ -218,9 +212,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl) void wxRadioBox::Init() { - m_needParent = true; - m_acceptsFocus = true; - m_hasFocus = m_lostFocus = false; } @@ -284,7 +275,8 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title, radio_button_group = gtk_radio_button_get_group( GTK_RADIO_BUTTON(rbtn) ); label.Empty(); - for ( const wxChar *pc = choices[i]; *pc; pc++ ) + for ( wxString::const_iterator pc = choices[i].begin(); + pc != choices[i].end(); ++pc ) { if ( *pc != wxT('&') ) label += *pc; @@ -563,9 +555,8 @@ void wxRadioBox::GtkDisableEvents() wxRadioBoxButtonsInfoList::compatibility_iterator node = m_buttonsInfo.GetFirst(); while (node) { - g_signal_handlers_disconnect_by_func (node->GetData()->button, - (gpointer) gtk_radiobutton_clicked_callback, - this); + g_signal_handlers_block_by_func(node->GetData()->button, + (gpointer)gtk_radiobutton_clicked_callback, this); node = node->GetNext(); } @@ -576,8 +567,8 @@ void wxRadioBox::GtkEnableEvents() wxRadioBoxButtonsInfoList::compatibility_iterator node = m_buttonsInfo.GetFirst(); while (node) { - g_signal_connect (node->GetData()->button, "clicked", - G_CALLBACK (gtk_radiobutton_clicked_callback), this); + g_signal_handlers_unblock_by_func(node->GetData()->button, + (gpointer)gtk_radiobutton_clicked_callback, this); node = node->GetNext(); } @@ -610,7 +601,7 @@ void wxRadioBox::GTKWidgetDoSetMnemonic(GtkWidget* w) } #if wxUSE_TOOLTIPS -void wxRadioBox::ApplyToolTip(GtkTooltips * WXUNUSED(tips), const wxChar *tip) +void wxRadioBox::ApplyToolTip(GtkTooltips * WXUNUSED(tips), const gchar *tip) { // set this tooltip for all radiobuttons which don't have their own tips unsigned n = 0; @@ -620,8 +611,7 @@ void wxRadioBox::ApplyToolTip(GtkTooltips * WXUNUSED(tips), const wxChar *tip) { if ( !GetItemToolTip(n) ) { - wxToolTip::Apply(GTK_WIDGET(node->GetData()->button), - wxConvCurrent->cWX2MB(tip)); + wxToolTip::Apply(GTK_WIDGET(node->GetData()->button), tip); } } }