X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4dcaf11a7b5189be78e52e1412febd7689a959f8..7b9da2077d0975db6c965a85c91d5aca671ab5e3:/src/gtk/radiobut.cpp diff --git a/src/gtk/radiobut.cpp b/src/gtk/radiobut.cpp index f7771f4ea6..026b777890 100644 --- a/src/gtk/radiobut.cpp +++ b/src/gtk/radiobut.cpp @@ -30,7 +30,8 @@ extern bool g_isIdle; // data //----------------------------------------------------------------------------- -extern bool g_blockEventsOnDrag; +extern bool g_blockEventsOnDrag; +extern wxCursor g_globalCursor; //----------------------------------------------------------------------------- // "clicked" @@ -68,7 +69,7 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab if (!PreCreation( parent, pos, size ) || !CreateBase( parent, id, pos, size, style, validator, name )) { - wxFAIL_MSG( _T("wxRadioButton creation failed") ); + wxFAIL_MSG( wxT("wxRadioButton creation failed") ); return FALSE; } @@ -131,7 +132,7 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab void wxRadioButton::SetLabel( const wxString& label ) { - wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid radiobutton") ); wxControl::SetLabel( label ); GtkButton *bin = GTK_BUTTON( m_widget ); @@ -141,7 +142,7 @@ void wxRadioButton::SetLabel( const wxString& label ) void wxRadioButton::SetValue( bool val ) { - wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid radiobutton") ); if (val == GetValue()) return; @@ -164,7 +165,7 @@ void wxRadioButton::SetValue( bool val ) bool wxRadioButton::GetValue() const { - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobutton") ); + wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid radiobutton") ); return GTK_TOGGLE_BUTTON(m_widget)->active; } @@ -186,4 +187,27 @@ void wxRadioButton::ApplyWidgetStyle() gtk_widget_set_style( GTK_BUTTON(m_widget)->child, m_widgetStyle ); } +bool wxRadioButton::IsOwnGtkWindow( GdkWindow *window ) +{ + return (window == GTK_TOGGLE_BUTTON(m_widget)->event_window); +} + +void wxRadioButton::OnInternalIdle() +{ + wxCursor cursor = m_cursor; + if (g_globalCursor.Ok()) cursor = g_globalCursor; + + if (GTK_TOGGLE_BUTTON(m_widget)->event_window && cursor.Ok()) + { + /* I now set the cursor the anew in every OnInternalIdle call + as setting the cursor in a parent window also effects the + windows above so that checking for the current cursor is + not possible. */ + + gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widget)->event_window, cursor.GetCursor() ); + } + + UpdateWindowUI(); +} + #endif