]> git.saurik.com Git - wxWidgets.git/commitdiff
The checkbox doesn't eat the first "toggled" event if SetValue(FALSE) was
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Dec 1998 20:24:44 +0000 (20:24 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Dec 1998 20:24:44 +0000 (20:24 +0000)
called any more. Added 2 lines to the controls sample to demonstrate it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/controls/controls.cpp
src/gtk/checkbox.cpp
src/gtk1/checkbox.cpp

index b74629851c3a44967f252473616041e941b798e3..d8a9805a4f3a12e7a4ab1645475b8ab355b813dc 100644 (file)
@@ -315,6 +315,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) :
   button = new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
   button->SetForegroundColour( "red" );
   m_checkbox = new wxCheckBox( panel, ID_LISTBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
+  m_checkbox->SetValue(FALSE);
   m_notebook->AddPage(panel, "wxList", FALSE, Image_List);
 
   panel = new wxPanel(m_notebook);
@@ -517,6 +518,7 @@ void MyPanel::OnListBoxButtons( wxCommandEvent &event )
   {
     case ID_LISTBOX_ENABLE:
     {
+      m_text->WriteText("Checkbox clicked.\n");
       m_listbox->Enable( event.GetInt() == 0 );
       break;
     }
index daafd5f43ffc5c51f5ea023c3a2d4471502aaf2f..9d594ca4951961223392b2431949f77061a6458f 100644 (file)
@@ -97,6 +97,11 @@ void wxCheckBox::SetValue( bool state )
 {
     wxCHECK_RET( m_widget != NULL, "invalid checkbox" );
     
+    if ( state == GetValue() )
+        return;
+
+    // for compatibility with wxMSW don't send notification when the check box
+    // state is changed programmatically
     m_blockFirstEvent = TRUE;
 
     gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widget), state );
index daafd5f43ffc5c51f5ea023c3a2d4471502aaf2f..9d594ca4951961223392b2431949f77061a6458f 100644 (file)
@@ -97,6 +97,11 @@ void wxCheckBox::SetValue( bool state )
 {
     wxCHECK_RET( m_widget != NULL, "invalid checkbox" );
     
+    if ( state == GetValue() )
+        return;
+
+    // for compatibility with wxMSW don't send notification when the check box
+    // state is changed programmatically
     m_blockFirstEvent = TRUE;
 
     gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widget), state );