X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e90c1d2a19361551eb07778280f22be3e759cf64..8b260fbe33b67311ab69043e8fb1bc4c4d7ac1f2:/src/gtk1/radiobut.cpp diff --git a/src/gtk1/radiobut.cpp b/src/gtk1/radiobut.cpp index fa026715f6..5f58c9331e 100644 --- a/src/gtk1/radiobut.cpp +++ b/src/gtk1/radiobut.cpp @@ -16,8 +16,8 @@ #if wxUSE_RADIOBOX -#include "gdk/gdk.h" -#include "gtk/gtk.h" +#include +#include //----------------------------------------------------------------------------- // idle system @@ -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