]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/radiobut.mm
Implement wxChoice::Insert.
[wxWidgets.git] / src / cocoa / radiobut.mm
index a4d9d46d5e47d987abdb770ed7f9fffb3a0ec03c..2384a73787750df9f8cd6db4c53617e357516159 100644 (file)
@@ -6,12 +6,18 @@
 // Created:     2003/03/16
 // RCS-ID:      $Id: 
 // Copyright:   (c) 2003 David Elliott
-// Licence:    wxWindows license
+// Licence:    wxWidgets licence
 /////////////////////////////////////////////////////////////////////////////
 
-#include "wx/app.h"
-#include "wx/radiobut.h"
-#include "wx/log.h"
+#include "wx/wxprec.h"
+
+#if wxUSE_RADIOBTN
+
+#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 +63,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 +77,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 +98,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 +114,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 +123,7 @@ wxRadioButton::~wxRadioButton()
         m_radioMaster = NULL;
     }
     // normal stuff
-    DisassociateNSButton(m_cocoaNSView);
+    DisassociateNSButton(GetNSButton());
 }
 
 void wxRadioButton::SetValue(bool value)
@@ -134,7 +143,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 =
@@ -152,3 +161,4 @@ void wxRadioButton::Cocoa_wxNSButtonAction(void)
     Command(event);
 }
 
+#endif