X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2e91d506b28baaa2234725751b1805864c970d58..899544330f37440c140b72a014c518a911b5b7a4:/src/mac/carbon/button.cpp diff --git a/src/mac/carbon/button.cpp b/src/mac/carbon/button.cpp index e69b3e3e6c..9da363eb50 100644 --- a/src/mac/carbon/button.cpp +++ b/src/mac/carbon/button.cpp @@ -1,18 +1,23 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp +// Name: src/mac/carbon/button.cpp // Purpose: wxButton // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" #include "wx/button.h" -#include "wx/panel.h" + +#ifndef WX_PRECOMP + #include "wx/panel.h" + #include "wx/toplevel.h" +#endif + #include "wx/stockitem.h" #include "wx/mac/uma.h" @@ -38,7 +43,7 @@ bool wxButton::Create(wxWindow *parent, if ( !wxButtonBase::Create(parent, id, pos, size, style, validator, name) ) return false; - m_label = label ; + m_labelOrig = m_label = label ; OSStatus err; Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ; @@ -96,21 +101,19 @@ bool wxButton::Create(wxWindow *parent, return true; } -void wxButton::SetDefault() +wxWindow *wxButton::SetDefault() { - wxWindow *parent = GetParent(); - wxButton *btnOldDefault = NULL; + wxWindow *btnOldDefault = wxButtonBase::SetDefault(); - if ( parent ) + if ( btnOldDefault ) { - btnOldDefault = wxDynamicCast(parent->GetDefaultItem(), wxButton); - parent->SetDefaultItem(this); + // cast needed to access the protected member + btnOldDefault->GetPeer()->SetData(kControlButtonPart , kControlPushButtonDefaultTag , (Boolean) 0 ) ; } - if ( btnOldDefault ) - btnOldDefault->m_peer->SetData(kControlButtonPart , kControlPushButtonDefaultTag , (Boolean) 0 ) ; - m_peer->SetData(kControlButtonPart , kControlPushButtonDefaultTag , (Boolean) 1 ) ; + + return btnOldDefault; } wxSize wxButton::DoGetBestSize() const @@ -143,11 +146,11 @@ wxSize wxButton::DoGetBestSize() const Rect bestsize = { 0 , 0 , 0 , 0 } ; m_peer->GetBestRect( &bestsize ) ; - + int wBtn; if ( EmptyRect( &bestsize ) ) { - wBtn = m_label.Length() * charspace + 12 ; + wBtn = m_label.length() * charspace + 12 ; } else { @@ -155,7 +158,7 @@ wxSize wxButton::DoGetBestSize() const sz.y = bestsize.bottom - bestsize.top ; } - if ((wBtn > sz.x) || ( GetWindowStyle() & wxBU_EXACTFIT)) + if ((wBtn > sz.x) || ( GetWindowStyle() & wxBU_EXACTFIT)) sz.x = wBtn; return sz ; @@ -163,7 +166,7 @@ wxSize wxButton::DoGetBestSize() const wxSize wxButton::GetDefaultSize() { - int wBtn = 70 ; + int wBtn = 70 ; int hBtn = 20 ; return wxSize(wBtn, hBtn); @@ -175,7 +178,7 @@ void wxButton::Command (wxCommandEvent & event) ProcessCommand(event); } -wxInt32 wxButton::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) ) +wxInt32 wxButton::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) ) { wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, m_windowId); event.SetEventObject(this); @@ -183,4 +186,3 @@ wxInt32 wxButton::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF return noErr; } -