#include "wx/gtk/win_gtk.h"
-//-----------------------------------------------------------------------------
-// idle system
-//-----------------------------------------------------------------------------
-
-extern void wxapp_install_idle_handler();
-extern bool g_isIdle;
-
//-----------------------------------------------------------------------------
// data
//-----------------------------------------------------------------------------
if (!rb->m_hasVMT) return FALSE;
if (g_blockEventsOnDrag) return FALSE;
+ if ( ((gdk_event->keyval == GDK_Tab) ||
+ (gdk_event->keyval == GDK_ISO_Left_Tab)) &&
+ rb->GetParent() && (rb->GetParent()->HasFlag( wxTAB_TRAVERSAL)) )
+ {
+ wxNavigationKeyEvent new_event;
+ new_event.SetEventObject( rb->GetParent() );
+ // GDK reports GDK_ISO_Left_Tab for SHIFT-TAB
+ new_event.SetDirection( (gdk_event->keyval == GDK_Tab) );
+ // CTRL-TAB changes the (parent) window, i.e. switch notebook page
+ new_event.SetWindowChange( (gdk_event->state & GDK_CONTROL_MASK) );
+ new_event.SetCurrentFocus( rb );
+ return rb->GetParent()->GetEventHandler()->ProcessEvent( new_event );
+ }
+
if ((gdk_event->keyval != GDK_Up) &&
(gdk_event->keyval != GDK_Down) &&
(gdk_event->keyval != GDK_Left) &&
for (int i = 0; i < n; i++)
{
if ( i != 0 )
- radio_button_group = gtk_radio_button_group( GTK_RADIO_BUTTON(m_radio) );
+ radio_button_group = gtk_radio_button_get_group( GTK_RADIO_BUTTON(m_radio) );
label.Empty();
for ( const wxChar *pc = choices[i]; *pc; pc++ )
ConnectWidget( GTK_WIDGET(m_radio) );
- if (!i) gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_radio), TRUE );
+ if (!i)
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(m_radio), TRUE );
g_signal_connect (m_radio, "clicked",
G_CALLBACK (gtk_radiobutton_clicked_callback), this);
wxCHECK_MSG( node, wxEmptyString, wxT("radiobox wrong index") );
- GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->GetData()) );
+ GtkLabel *label = GTK_LABEL(GTK_BIN(node->GetData())->child);
wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
wxCHECK_RET( node, wxT("radiobox wrong index") );
- GtkLabel *g_label = GTK_LABEL( BUTTON_CHILD(node->GetData()) );
+ GtkLabel *g_label = GTK_LABEL(GTK_BIN(node->GetData())->child);
- gtk_label_set( g_label, wxGTK_CONV( label ) );
+ gtk_label_set_text( g_label, wxGTK_CONV( label ) );
}
bool wxRadioBox::Enable( bool enable )
while (node)
{
GtkButton *button = GTK_BUTTON( node->GetData() );
- GtkLabel *label = GTK_LABEL( BUTTON_CHILD(button) );
+ GtkLabel *label = GTK_LABEL(GTK_BIN(button)->child);
gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
gtk_widget_set_sensitive( GTK_WIDGET(label), enable );
wxCHECK_MSG( node, false, wxT("radiobox wrong index") );
GtkButton *button = GTK_BUTTON( node->GetData() );
- GtkLabel *label = GTK_LABEL( BUTTON_CHILD(button) );
+ GtkLabel *label = GTK_LABEL(GTK_BIN(button)->child);
gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
gtk_widget_set_sensitive( GTK_WIDGET(label), enable );
GtkWidget *widget = GTK_WIDGET( node->GetData() );
gtk_widget_modify_style( widget, style );
- gtk_widget_modify_style( BUTTON_CHILD(node->GetData()), style );
+ gtk_widget_modify_style(GTK_BIN(widget)->child, style);
node = node->GetNext();
}