gtk_signal_connect( GTK_OBJECT(m_radio), "clicked",
GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this );
- gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow),
- GTK_WIDGET(m_radio),
+ gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow),
+ GTK_WIDGET(m_radio),
m_x+10, m_y+10+(i*24), 10, 10 );
}
int x = 7;
int y = 15;
+ if ( m_majorDim == 0 )
+ {
+ // avoid dividing by 0 below
+ wxFAIL_MSG( _T("dimension of radiobox should not be 0!") );
+
+ m_majorDim = 1;
+ }
+
int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1;
wxSize res( 0, 0 );
if ((m_windowStyle & wxNO_BORDER) != 0)
gtk_widget_hide( m_widget );
-
+
wxNode *node = m_boxes.First();
while (node)
{
GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() );
+ DisableEvents();
+
gtk_toggle_button_set_state( button, 1 );
+
+ EnableEvents();
}
int wxRadioBox::GetSelection(void) const
wxFAIL_MSG(_T("wxRadioBox::SetNumberOfRowsOrCols not implemented."));
}
+void wxRadioBox::DisableEvents()
+{
+ wxNode *node = m_boxes.First();
+ while (node)
+ {
+ gtk_signal_disconnect_by_func( GTK_OBJECT(node->Data()),
+ GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this );
+
+ node = node->Next();
+ }
+}
+
+void wxRadioBox::EnableEvents()
+{
+ wxNode *node = m_boxes.First();
+ while (node)
+ {
+ gtk_signal_connect( GTK_OBJECT(node->Data()), "clicked",
+ GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this );
+
+ node = node->Next();
+ }
+}
+
void wxRadioBox::ApplyWidgetStyle()
{
SetWidgetStyle();