/////////////////////////////////////////////////////////////////////////////
-// Name: cocoa/checkbox.mm
+// Name: src/cocoa/checkbox.mm
// Purpose: wxCheckBox
// Author: David Elliott
// Modified by:
// Created: 2003/03/16
-// RCS-ID: $Id:
+// RCS-ID: $Id$
// Copyright: (c) 2003 David Elliott
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
+
+#if wxUSE_CHECKBOX
+
+#include "wx/checkbox.h"
+
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/app.h"
- #include "wx/checkbox.h"
#endif //WX_PRECOMP
#include "wx/cocoa/autorelease.h"
#import <AppKit/NSButton.h>
#import <Foundation/NSString.h>
-IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
BEGIN_EVENT_TABLE(wxCheckBox, wxCheckBoxBase)
END_EVENT_TABLE()
WX_IMPLEMENT_COCOA_OWNER(wxCheckBox,NSButton,NSControl,NSView)
[m_cocoaNSView release];
[GetNSButton() setButtonType: NSSwitchButton];
[GetNSButton() setAllowsMixedState: Is3State()];
- [GetNSButton() setTitle:wxNSStringWithWxString(wxStripMenuCodes(label))];
+ CocoaSetLabelForObject(label, GetNSButton());
[GetNSControl() sizeToFit];
if(m_parent)
cocoaState = NSOnState;
break;
case wxCHK_UNDETERMINED:
- wxASSERT_MSG(Is3State(),"Use the wxCHK_3STATE style flag");
+ // Base class would have already set state to wxCHK_UNCHECKED
+// wxASSERT_MSG(Is3State(),"Use the wxCHK_3STATE style flag");
cocoaState = NSMixedState;
break;
default:
int state = [GetNSButton() state];
wxASSERT_MSG(state!=NSMixedState || Is3State(),
wxT("NSMixedState returned from a 2-state checkbox"));
- return state==NSOnState;
+ return state!=NSOffState;
}
wxCheckBoxState wxCheckBox::DoGet3StateValue() const
default:
wxFAIL_MSG(wxT("[NSButton -state] returned an invalid state!"));
case NSMixedState:
- wxASSERT_MSG(Is3State(),wxT("NSMixedState returned from a 2-state checkbox"));
+ // Base class handles this assertion for us
+// wxASSERT_MSG(Is3State(),wxT("NSMixedState returned from a 2-state checkbox"));
return wxCHK_UNDETERMINED;
}
}
void wxCheckBox::Cocoa_wxNSButtonAction(void)
{
- wxLogDebug(wxT("Checkbox"));
+ wxLogTrace(wxTRACE_COCOA,wxT("Checkbox"));
// What we really want to do is override [NSCell -nextState] to return
// NSOnState in lieu of NSMixedState but this works (aside from the
// very slightly noticeable drawing of - and then a check) -DE
Command(event);
}
+void wxCheckBox::SetLabel(const wxString& s)
+{
+ wxAutoNSAutoreleasePool pool;
+ CocoaSetLabelForObject(s, GetNSButton());
+}
+
+wxString wxCheckBox::GetLabel() const
+{
+ wxAutoNSAutoreleasePool pool;
+ return wxStringWithNSString([GetNSButton() title]);
+
+}
+
+#endif // wxUSE_CHECKBOX