]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/button.mm
panther fix
[wxWidgets.git] / src / cocoa / button.mm
index 8e6e57780a1fb9e77040bb6e5594440eea770902..08d2b9853c2fb61a9fd094c127731b3d6ef0b5a8 100644 (file)
     #include "wx/log.h"
 #endif
 
+#include "wx/cocoa/autorelease.h"
+
 #import <AppKit/NSButton.h>
-#import <Foundation/NSString.h>
+#include "wx/cocoa/string.h"
 
 IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl)
 BEGIN_EVENT_TABLE(wxButton, wxButtonBase)
@@ -29,6 +31,7 @@ bool wxButton::Create(wxWindow *parent, wxWindowID winid,
             const wxSize& size, long style,
             const wxValidator& validator, const wxString& name)
 {
+    wxAutoNSAutoreleasePool pool;
     wxLogDebug("Creating control with id=%d",winid);
     if(!CreateControl(parent,winid,pos,size,style,validator,name))
         return false;
@@ -41,7 +44,7 @@ bool wxButton::Create(wxWindow *parent, wxWindowID winid,
     [m_cocoaNSView release];
 
     [GetNSButton() setBezelStyle:NSRoundedBezelStyle];
-    [GetNSButton() setTitle:[NSString stringWithCString: label.c_str()]];
+    [GetNSButton() setTitle:wxNSStringWithWxString(label)];
     [GetNSControl() sizeToFit];
 
     if(m_parent)
@@ -52,8 +55,7 @@ bool wxButton::Create(wxWindow *parent, wxWindowID winid,
 
 wxButton::~wxButton()
 {
-    CocoaRemoveFromParent();
-    SetNSButton(NULL);
+    DisassociateNSButton(m_cocoaNSView);
 }
 
 void wxButton::Cocoa_wxNSButtonAction(void)
@@ -64,3 +66,19 @@ void wxButton::Cocoa_wxNSButtonAction(void)
     Command(event);
 }
 
+wxString wxButton::GetLabel() const
+{
+    return wxString([[GetNSButton() title] lossyCString]);
+}
+
+void wxButton::SetLabel(const wxString& label)
+{
+    [GetNSButton() setTitle:wxNSStringWithWxString(label)];
+}
+
+wxSize wxButtonBase::GetDefaultSize()
+{
+    // FIXME: stub
+    return wxDefaultSize;
+}
+