]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/checkbox_osx.cpp
Fix wxHtmlHelpData::SetTempDir() to behave correctly without trailing slash.
[wxWidgets.git] / src / osx / checkbox_osx.cpp
index 1830c610d91bc0cfd204461f12fca416890320c1..6e4d58a68091a3a62152321baff7152276b9c692 100644 (file)
@@ -1,10 +1,9 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/osx/carbon/checkbox.cpp
+// Name:        src/osx/checkbox_osx.cpp
 // Purpose:     wxCheckBox
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     04/01/98
-// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor
 // Licence:       wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -89,7 +88,7 @@ bool wxCheckBox::OSXHandleClicked( double WXUNUSED(timestampsec) )
     {
         wxCheckBoxState origState ;
 
-        newState = origState = Get3StateValue();
+        origState = Get3StateValue();
 
         switch (origState)
         {
@@ -110,15 +109,25 @@ bool wxCheckBox::OSXHandleClicked( double WXUNUSED(timestampsec) )
             default:
                 break;
         }
+        
         if (newState == origState)
             sendEvent = false;
+        else
+            Set3StateValue( newState );
     }
-
+    else
+    {
+        // in case we cannot avoid this user state change natively (eg cocoa) we intercept it here
+        if ( newState == wxCHK_UNDETERMINED && !Is3rdStateAllowedForUser() )
+        {
+            newState = wxCHK_CHECKED;
+            Set3StateValue( newState );
+        }
+    }
+    
     if (sendEvent)
     {
-        Set3StateValue( newState );
-
-        wxCommandEvent event( wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId );
+        wxCommandEvent event( wxEVT_CHECKBOX, m_windowId );
         event.SetInt( newState );
         event.SetEventObject( this );
         ProcessCommand( event );