]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/radiobox.cpp
better <HR> tag handling in wxHTML
[wxWidgets.git] / src / gtk / radiobox.cpp
index fe7709a31dfc489de783265a334fc25dc364056f..20d1af4563e1f1c85b5aa662e26d433176c9ec59 100644 (file)
 #pragma implementation "radiobox.h"
 #endif
 
 #pragma implementation "radiobox.h"
 #endif
 
-#include "wx/radiobox.h"
+#include "wx/defs.h"
 
 #if wxUSE_RADIOBOX
 
 
 #if wxUSE_RADIOBOX
 
+#include "wx/radiobox.h"
+
 #include "wx/dialog.h"
 #include "wx/frame.h"
 #include "wx/log.h"
 #include "wx/dialog.h"
 #include "wx/frame.h"
 #include "wx/log.h"
@@ -42,20 +44,14 @@ extern bool       g_blockEventsOnDrag;
 // "clicked"
 //-----------------------------------------------------------------------------
 
 // "clicked"
 //-----------------------------------------------------------------------------
 
-static void gtk_radiobutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxRadioBox *rb )
+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;
 
 {
     if (g_isIdle) wxapp_install_idle_handler();
 
     if (!rb->m_hasVMT) return;
     if (g_blockEventsOnDrag) return;
 
-    if (rb->m_alreadySent)
-    {
-        rb->m_alreadySent = FALSE;
-        return;
-    }
-
-    rb->m_alreadySent = TRUE;
+    if (!button->active) return;
 
     wxCommandEvent event( wxEVT_COMMAND_RADIOBOX_SELECTED, rb->GetId() );
     event.SetInt( rb->GetSelection() );
 
     wxCommandEvent event( wxEVT_COMMAND_RADIOBOX_SELECTED, rb->GetId() );
     event.SetInt( rb->GetSelection() );
@@ -164,7 +160,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl)
 
 void wxRadioBox::Init()
 {
 
 void wxRadioBox::Init()
 {
-    m_alreadySent = FALSE;
     m_needParent = TRUE;
     m_acceptsFocus = TRUE;
 
     m_needParent = TRUE;
     m_acceptsFocus = TRUE;
 
@@ -182,12 +177,14 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title,
         !CreateBase( parent, id, pos, size, style, validator, name ))
     {
         wxFAIL_MSG( wxT("wxRadioBox creation failed") );
         !CreateBase( parent, id, pos, size, style, validator, name ))
     {
         wxFAIL_MSG( wxT("wxRadioBox creation failed") );
-       return FALSE;
+        return FALSE;
     }
 
     m_widget = gtk_frame_new( title.mbc_str() );
 
     }
 
     m_widget = gtk_frame_new( title.mbc_str() );
 
-    m_majorDim = majorDim;
+    // majorDim may be 0 if all trailing parameters were omitted, so don't
+    // assert here but just use the correct value for it
+    m_majorDim = majorDim == 0 ? n : majorDim;
 
     GtkRadioButton *m_radio = (GtkRadioButton*) NULL;
 
 
     GtkRadioButton *m_radio = (GtkRadioButton*) NULL;
 
@@ -474,7 +471,7 @@ void wxRadioBox::SetSelection( int n )
 
     GtkDisableEvents();
     
 
     GtkDisableEvents();
     
-    gtk_toggle_button_set_state( button, 1 );
+    gtk_toggle_button_set_active( button, 1 );
     
     GtkEnableEvents();
 }
     
     GtkEnableEvents();
 }