]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/radiobut.mm
Commited slighly modified fix by David Parsons.
[wxWidgets.git] / src / cocoa / radiobut.mm
index a4d9d46d5e47d987abdb770ed7f9fffb3a0ec03c..5c4b6759d6b1dbba14034335a91b7508adcf326e 100644 (file)
@@ -9,9 +9,12 @@
 // Licence:    wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#include "wx/app.h"
-#include "wx/radiobut.h"
-#include "wx/log.h"
+#include "wx/wxprec.h"
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+    #include "wx/app.h"
+    #include "wx/radiobut.h"
+#endif //WX_PRECOMP
 
 #import <AppKit/NSButton.h>
 #include "wx/cocoa/string.h"
@@ -57,7 +60,7 @@ bool wxRadioButton::Create(wxWindow *parent, wxWindowID winid,
             {
                 m_radioMaster = radioButton->m_radioMaster;
                 wxASSERT_MSG(m_radioMaster,
-                    "Previous radio button should be part of a group");
+                    wxT("Previous radio button should be part of a group"));
                 // Don't crash, assume user meant wxRB_SINGLE
                 if(m_radioMaster)
                     m_radioMaster->m_radioSlaves.Append(this);
@@ -71,6 +74,9 @@ bool wxRadioButton::Create(wxWindow *parent, wxWindowID winid,
     [m_cocoaNSView release];
     [GetNSButton() setButtonType: NSRadioButton];
     [GetNSButton() setTitle:wxNSStringWithWxString(label)];
+    // If it's the first in a group, it should be selected
+    if(style&wxRB_GROUP)
+        [GetNSButton() setState: NSOnState];
     [GetNSControl() sizeToFit];
 
     if(m_parent)
@@ -89,7 +95,7 @@ wxRadioButton::~wxRadioButton()
             m_radioSlaves.GetFirst();
         wxASSERT(slaveNode);
         wxASSERT(slaveNode->GetData() == this);
-        m_radioSlaves.DeleteNode(slaveNode);
+        m_radioSlaves.Erase(slaveNode);
     
         // Now find the new master
         wxRadioButton *newMaster = NULL;
@@ -105,7 +111,7 @@ wxRadioButton::~wxRadioButton()
             wxASSERT(radioButton->m_radioMaster == this);
             radioButton->m_radioMaster = newMaster;
             newMaster->m_radioSlaves.Append(radioButton);
-            m_radioSlaves.DeleteNode(slaveNode);
+            m_radioSlaves.Erase(slaveNode);
         }
     }
     else if(m_radioMaster)
@@ -114,7 +120,7 @@ wxRadioButton::~wxRadioButton()
         m_radioMaster = NULL;
     }
     // normal stuff
-    DisassociateNSButton(m_cocoaNSView);
+    DisassociateNSButton(GetNSButton());
 }
 
 void wxRadioButton::SetValue(bool value)
@@ -134,7 +140,7 @@ bool wxRadioButton::GetValue() const
 
 void wxRadioButton::Cocoa_wxNSButtonAction(void)
 {
-    wxLogDebug("wxRadioButton");
+    wxLogTrace(wxTRACE_COCOA,wxT("wxRadioButton"));
     if(m_radioMaster && ([GetNSButton() state] == NSOnState))
     {
         for(wxRadioButtonList::compatibility_iterator slaveNode =