X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1f0c8f31f407ecfce909060464c0ea655221cdab..a12482a357a2ef5feb50f9ace8e173f9aed680e0:/src/osx/carbon/checkbox.cpp diff --git a/src/osx/carbon/checkbox.cpp b/src/osx/carbon/checkbox.cpp index ccb5ab2afb..346720b8ca 100644 --- a/src/osx/carbon/checkbox.cpp +++ b/src/osx/carbon/checkbox.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/mac/carbon/checkbox.cpp +// Name: src/osx/carbon/checkbox.cpp // Purpose: wxCheckBox // Author: Stefan Csomor // Modified by: @@ -16,171 +16,27 @@ #include "wx/checkbox.h" #include "wx/osx/uma.h" - -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) - - -// Single check box item -bool wxCheckBox::Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) +wxWidgetImplType* wxWidgetImpl::CreateCheckBox( wxWindowMac* wxpeer, + wxWindowMac* parent, + wxWindowID WXUNUSED(id), + const wxString& WXUNUSED(label), + const wxPoint& pos, + const wxSize& size, + long style, + long WXUNUSED(extraStyle)) { - m_macIsUserPane = false ; - - if ( !wxCheckBoxBase::Create(parent, id, pos, size, style, validator, name) ) - return false; - - m_labelOrig = m_label = label ; + Rect bounds = wxMacGetBoundsForControl( wxpeer , pos , size ) ; + wxMacControl* peer = new wxMacControl(wxpeer) ; + verify_noerr( CreateCheckBoxControl(MAC_WXHWND(parent->MacGetTopLevelWindowRef()), &bounds , + CFSTR("") , 0 , false , peer->GetControlRefAddr() ) ); SInt32 maxValue = 1 /* kControlCheckboxCheckedValue */; if (style & wxCHK_3STATE) maxValue = 2 /* kControlCheckboxMixedValue */; - Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ; - m_peer = new wxMacControl( this ) ; - verify_noerr( CreateCheckBoxControl(MAC_WXHWND(parent->MacGetTopLevelWindowRef()), &bounds , - CFSTR("") , 0 , false , m_peer->GetControlRefAddr() ) ); - - m_peer->SetMaximum( maxValue ) ; - - MacPostControlCreate(pos, size) ; - - return true; -} - -void wxCheckBox::SetValue(bool val) -{ - if (val) - Set3StateValue(wxCHK_CHECKED); - else - Set3StateValue(wxCHK_UNCHECKED); -} - -bool wxCheckBox::GetValue() const -{ - return (DoGet3StateValue() != 0); -} - -void wxCheckBox::Command(wxCommandEvent & event) -{ - int state = event.GetInt(); - - wxCHECK_RET( (state == wxCHK_UNCHECKED) || (state == wxCHK_CHECKED) - || (state == wxCHK_UNDETERMINED), - wxT("event.GetInt() returned an invalid checkbox state") ); - - Set3StateValue((wxCheckBoxState)state); - - ProcessCommand(event); -} - -wxCheckBoxState wxCheckBox::DoGet3StateValue() const -{ - return (wxCheckBoxState)m_peer->GetValue() ; -} - -void wxCheckBox::DoSet3StateValue(wxCheckBoxState val) -{ - m_peer->SetValue( val ) ; -} - -wxInt32 wxCheckBox::MacControlHit( WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) ) -{ - wxCheckBoxState origState, newState; - - newState = origState = Get3StateValue(); - - switch (origState) - { - case wxCHK_UNCHECKED: - newState = wxCHK_CHECKED; - break; - - case wxCHK_CHECKED: - // If the style flag to allow the user setting the undetermined state is set, - // then set the state to undetermined; otherwise set state to unchecked. - newState = Is3rdStateAllowedForUser() ? wxCHK_UNDETERMINED : wxCHK_UNCHECKED; - break; - - case wxCHK_UNDETERMINED: - newState = wxCHK_UNCHECKED; - break; - - default: - break; - } - - if (newState != origState) - { - Set3StateValue( newState ); - - wxCommandEvent event( wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId ); - event.SetInt( newState ); - event.SetEventObject( this ); - ProcessCommand( event ); - } - - return noErr; -} - -// Bitmap checkbox -bool wxBitmapCheckBox::Create(wxWindow *parent, - wxWindowID id, - const wxBitmap *WXUNUSED(label), - const wxPoint& WXUNUSED(pos), - const wxSize& WXUNUSED(size), - long style, - const wxValidator& wxVALIDATOR_PARAM(validator), - const wxString& name) -{ - SetName(name); -#if wxUSE_VALIDATORS - SetValidator(validator); -#endif - m_windowStyle = style; - - if (parent) - parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: Create the bitmap checkbox - - return false; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap *WXUNUSED(bitmap)) -{ - // TODO - wxFAIL_MSG(wxT("wxBitmapCheckBox::SetLabel() not yet implemented")); -} - -void wxBitmapCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxControl::SetSize( x , y , width , height , sizeFlags ) ; -} - -void wxBitmapCheckBox::SetValue(bool WXUNUSED(val)) -{ - // TODO - wxFAIL_MSG(wxT("wxBitmapCheckBox::SetValue() not yet implemented")); -} - -bool wxBitmapCheckBox::GetValue() const -{ - // TODO - wxFAIL_MSG(wxT("wxBitmapCheckBox::GetValue() not yet implemented")); + peer->SetMaximum( maxValue ) ; - return false; + return peer; } #endif